はじめに
よく考えたらすごく初歩的なのですが一瞬戸惑ったのでメモ
事象
タイトルのとおりですが、バッチやスクリプトなどでファイル名の作成をミスって
誤って先頭にハイフンがついたファイルを作成してしまうことはあるはあると思います。
そんなときに普通に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. ディレクトリまで指定する
こちらは簡単ですね。
$ rm ./-file
2. 連続ハイフン(--)を使用する
メモりたかったのはどちらかというとこの方法について。
下記リンクを参考にさせて頂きましたが、
コマンドの途中に--
(2つ連続するハイフンのみ)を指定するとそれ以降の指定はパラメータとして認識されなくなります。
* UNIX Q&A集
これを利用してファイル名の前に--
をつけることでそれ以降がパラメータではなくファイル名として扱われます。
$ rm -- -file
まとめ
こんな些細なことでも突然起こるとぱっと出てこないもんですよねーというメモでした!