tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

ファイルの先頭にハイフン(-)がつくファイルをrmコマンドで削除するには?メモ - オプションと勘違いされて"illegal option"と言われてしまう

はじめに

よく考えたらすごく初歩的なのですが一瞬戸惑ったのでメモ

事象

タイトルのとおりですが、バッチやスクリプトなどでファイル名の作成をミスって
誤って先頭にハイフンがついたファイルを作成してしまうことはあるはあると思います。
そんなときに普通にrmで消そうと思うとこうなります

# 擬似的にハイフン(-)つきファイルができてしまったていを作る
$ echo 'test' > -file

# 確認
# ls -l
-rw-r--r--   1 hoge  hoge        5  1 15 22:45 -file


# 消そうとしてもオプションと感慨されて消せない
$ rm -file
rm: illegal option -- l
usage: rm [-f | -i] [-dPRrvW] file ...
       unlink file

対処法

対処方法は2つあります

  1. ディレクトリまで指定する
  2. 連続ハイフン(--)を使用する
1. ディレクトリまで指定する

こちらは簡単ですね。

$ rm ./-file
2. 連続ハイフン(--)を使用する

メモりたかったのはどちらかというとこの方法について。

下記リンクを参考にさせて頂きましたが、
コマンドの途中に--(2つ連続するハイフンのみ)を指定するとそれ以降の指定はパラメータとして認識されなくなります。
* UNIX Q&A集

これを利用してファイル名の前に--をつけることでそれ以降がパラメータではなくファイル名として扱われます。

$ rm -- -file

まとめ

こんな些細なことでも突然起こるとぱっと出てこないもんですよねーというメモでした!