コマンドリダイレクトやキーボードの入力ミスで変なファイル名を作成してしまった場合、 「rm」コマンドで削除しようとしても削除できない場合があると思います。 以下が代表的なファイルです。 # ls -l 合計 0 -rw-r--r-- 1 root root 0 12月 5 18:08 " -rw-r--r-- 1 root root 0 12月 5 18:08 # -rw-r--r-- 1 root root 0 12月 5 18:08 ' -rw-r--r-- 1 root root 0 12月 5 18:06 * -rw-r--r-- 1 root root 0 12月 5 18:07 -abc -rw-r--r-- 1 root root 0 12月 5 18:06 \ -rw-r--r-- 1 root root 0 12月 5 18:07 ^abc -rw-r--r-- 1 root root 0 12月 5 18:06 a b c 「rm」コマンドでファイルを削除 # rm " > # rm # rm: missing operand 詳しくは `rm --help' を実行して下さい. # rm -abc rm: オプションが違います -- a Try `rm ./-abc' to remove the file `-abc'. 詳しくは `rm --help' を実行して下さい. # rm a b c rm: cannot lstat `a': そのようなファイルやディレクトリはありません rm: cannot lstat `b': そのようなファイルやディレクトリはありません rm: cannot lstat `c': そのようなファイルやディレクトリはありません 上記の様に、削除ができません。 このような場合、削除対象のファイルを「'」シングルクオーテーションで括って削除します。 # rm '"' rm: remove 通常の空ファイル `"'? y しかし、この「'」シングルクオーテーションを用いても削除できないのは「'」と「-abc」となります。 これは「'」がその括ったシングルクオーテーションとして認識してしまう為で 「-abc」は「rm」コマンドのオプションと認識してしまうからです。 「'」を括ったシングルクオーテーションと認識させず、そのものと認識させるには「\」エスケープシーケンスを前に付加して削除を行います。 # rm \' rm: remove 通常の空ファイル `\''? y これでも削除できないのは「-abc」のように「-」マイナスが先頭に来てしまったファイルとなります。 このような場合は、「rm」コマンドの前に「--」マイナスを2つ付与して削除が可能です。 # rm -- -abc rm: remove 通常の空ファイル `-abc'? y 上記は、「-」を2つ指定する事によってオプションを無効(誤魔化す)にする事ができます。 |