昔の話ですが、Linuxを使い始めたときに困ったのでメモします。
事象
Linuxでプログラムを作るときに、間違ってハイフンからファイル名が始まるファイルを作成してしまったことがあります。
ファイルの削除をしたいのですが、”rm [ファイル]”では削除できません。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# たとえばこんなかんじです。 #ファイル名がハイフンから始まるファイルを作成する $ touch /tmp/-test # 作成したファイルがあるディレクトリに移動 $ cd /tmp/ # rmコマンドで削除してみる $ rm -test rm: 無効なオプション -- 't' Try 'rm ./-test' to remove the file '-test'. Try 'rm --help' for more information. |
見てのとおりですが、rmのあとにハイフンが続くとコマンドのオプションとして認識してしまい、「そんなオプションはないよ!」と怒られてしまいます。
対処法1:コマンドオプションと認識されないようにする
先程の例ではファイル名がrmコマンドのオプションとして認識されてしまうことが問題でした。
ということは、「オプションではない」ということを認識させれば良いのです。
1 |
$ rm -- -test |
↑のようにハイフンを2回入力したあとにファイル名を指定すると、ハイフンから始まるファイルがコマンドオプションとして認識されなくなります。
『–』で打ち消しできるということです。
対処法2:ディレクトリを含めたパスを指定する
今回の例は、現在のディレクトリ内に存在するファイルを指定したときに発生しました。
ということはファイルの場所をディレクトリも含めて指定してあげればいいのです。
1 2 3 4 5 |
# /tmp/-test にあるディレクトリを削除する $ ll /tmp/-test -rw-rw-r-- 1 XXXX XXXX 0 4月 9 11:55 /tmp/-test $ rm /tmp/-test |
これで削除できます。
Linuxを使い始めたころは全然気が付かなかったです。
コメント