ファイル名の特殊文字 (\#033OA)

ファイル名の特殊文字 (\#033OA)

rsync中に非常に頑固なバグが原因で小さな問題が発生しました。これは、ファイル名に特殊文字が含まれるファイルが原因で発生します。他にも、ファイル名エンコーディングの一部の変換を実行することでこの問題を解決できました。しかし、このファイルさえ見つかりません。

rsyncはこう言います。

../.\#033OA.tex.pyD0MB" failed: No such file or directory (2)

人々が最初に気づくのは、文字コードが16進数または8進数になることができないということです。だから私がグーグルして見つけた結果です。これ。だからCURSOR UPキャラクターかもしれません。頑張った

ls -la *`printf '\033OA'`*

役に立たない。また、ディレクトリのls出力をパイプで接続してみましたが、od役に立ちませんでした。

また何ができますか?それとも、ロールで正確に何を探していますか?

ありがとう

答え1

グラフィック以外の文字をCスタイルのエスケープシーケンスとして表示する-bオプションを使用できます。ls

答え2

ls -aqすべてのファイル名を印刷して?印刷できない各文字を 。多くのUnixバリアントでは、ls -ABor ls -Ab(マンページチェック)は8進エスケープ文字を印刷します。 Passを使用するls -aqと、表示された出力をシェルモードで使用できます。

$ ls -Aq
.?OA.tex.pyD0MB
… more stuff …
$ mv -i .?OA.tex.pyD0MB weird-file
$ less weird-file

どういうわけかファイル名を取得する別の方法は、シェルの補完機能を使用することです。奇妙な名前が挿入されるmv .まで繰り返し入力して押します。Tab

関連情報