web-dev-qa-db-ja.com

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

Rsync中に非常に頑固なエラーが発生し、少し問題が発生しました。ファイル名に特殊文字が含まれているファイルが原因です。他にもありますが、ファイル名のエンコーディングを変換することで解決できます。しかし、この1つのファイルを見つけることさえできません。

だからここにrsyncが言うことです:

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

最初に気づくのは、文字コードを16進数または8進数にすることはできないため、グーグル検索して this だけを見つけたということです。したがって、それはCURSOR UP文字(またはそうではない)。私はもう試した

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

無駄に。また、そのディレクトリのlsの出力をodにパイプして、役に立たないようにしました。

他に何ができますか?または、とにかく私はどんなキャラクターを探していますか?

ありがとう

10
luxifer

-bオプションをlsに追加すると、非グラフィック文字がCスタイルのエスケープシーケンスとして表示されます。

9
enzotib

ls -aqは、すべてのファイル名を印刷しますが、印刷できない文字の代わりに?を付けます。多くのUNIXバリアントでは、ls -ABまたはls -Ab(manページを確認)は8進エスケープを出力します。 ls -aqを使用すると、表示された出力をシェルパターンとして使用できます。

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

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