ファイル名に印刷できない文字を含むファイルを削除する方法

ファイル名に印刷できない文字を含むファイルを削除する方法

何とかファイル名がないようなファイルを作成しました。ファイルの詳細を確認する方法に関する情報を以下に見つけました。ワイヤー。

ただし、リストされている提案のいくつかを試しましたが、ファイルを削除できないようです。何をしたのかわかりませんが、xmlファイルをコピーしようとするとこの現象が発生します。

ファイルの一部の情報は次のとおりです。

> ls -lb
total 296
-rw-r--r--   1 voyager  endeavor  137627 Jan 12 12:49 \177

> file *
:               XML document

> ls -i
 417777   

私はinumスイッチの使い方を見つけ、それを取り除く最も簡単な方法のように見えるので、rmに接続しようとしました。しかし、下のリンクされたスレッドの一番下にある例は私に失敗します。例は次のとおりです。

> find -inum 41777 -exec ls -al {} \;
find: illegal option -- i
find: [-H | -L] path-list predicate-list

だから最初は以下のようなルートリストを試してみましたが、それもうまくいきませんでした。

> find . -inum 41777 -exec ls -al {} \;

印刷できない文字\ 177が何であるか、それをコマンドに渡す方法がわかりませんが、rmこのファイルを削除しようとしたときに他のファイル/ディレクトリを混乱させないようにしたいと思います。

ベストアンサー1

ファイルに名前があるが印刷できない文字で構成されています。 ksh93、bash、zsh、mksh、またはFreeBSD shを使用している場合は、印刷できない名前を指定して削除してみてください。まず、名前が正しいことを確認してください。ls -ld $'\177' 正しいファイルが表示されたら、rmを使用してください。rm $'\177'

別の(危険な)アプローチは、rmオプションを使用することですrm -i -- *。ファイルを削除する前に確認が必要なので、そのファイルを除き、保持したいすべてのファイルをスキップできます。

頑張ってください!

おすすめ記事