こんにちは、さるまりんです。
あまりやることはないかもしれないですが、しばらくハマってしまったのでメモを残させてもらいます。
-(ハイフン)で始まる名前のファイルを作ろうと
touch -start-with-hyphen
としました。
$ touch -start-with-hyphen
touch: illegal option -- s
usage:
touch [-A [-][[hh]mm]SS] [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...
エラーです。
-s
がオプションと判断されてしまうんですね。
このような時、--
を使ってエスケープします。
touch -- -start-with-hyphen
↑こんな感じです。
他のコマンドでも同じです。
ls
でファイルの情報を見てみます。
$ ls -l -start-with-hyphen
ls: illegal option -- -
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]
$ ls -l -- -start-with-hyphen
-rw-r--r-- 1 salumarine staff 0 1 23 19:19 -start-with-hyphen
rm
で削除します。
$ rm -start-with-hyphen
rm: illegal option -- s
usage: rm [-f | -i] [-dPRrvW] file ...
unlink file
$ rm -- -start-with-hyphen
冒頭にも書きましたが、あまり遭遇することはないかもですが、たまたまこんなケースに出くわしました。覚えられなくても、ここを見て思い出せれば今回みたいに長時間ハマることはないかな。書いたことを覚えていられますように。
読んでくださってありがとうございます。
それではまた!