特殊文字やクォートが含まれたファイルの削除方法

シェルスクリプトの実行ミスやコピペの操作ミスで下記のような特殊文字が含むファイル名ができた場合の削除方法を紹介します

$ ls
'${id}'_test01.csv

たぶん、シェルスクリプトで変数を展開したファイルを作成する時に、ダブルコーテーションとシングルコーテーションを間違って文字列なり間違ったファイルとして出力されたみたいです

特殊文字やクォートが含まれた非常に扱いにくいファイル名は通常の rm コマンドではシェルが変数の展開やクォートの解釈をしてしまうため、正しく指定できないことが多いです。

i-node(アイノード)番号を使って削除する

特殊文字を含むファイル名を削除する場合は、ファイルそのものに割り振られた識別番号(i-node)を指定して削除するのが最も確実で安全です

1.i-node番号を確認する

$ ls -i

26033201 '${id}'_test01.csv

2.i-node番号で検索して、目的のファイルがヒットするか確認

$ find . -inum 26033201 
./${IF($["${CALLERID(num)}"!

3.i-node番号を指定して削除する

$ find . -inum 26033201 -delete

\ 最新情報をチェック /