【Linux・Mac】ファイル名の先頭がハイフンのファイルを削除する方法




たまにコマンドを誤ってファイル名の先頭がハイフンのファイルを作成してしまうことがありますが、普通にrmコマンドで削除しようとしたらできなかったので解決策を書いておきます。

まずrmコマンドで先頭がハイフンのファイルを削除仕様とすると以下のようなエラーが出ます。

rm: illegal option -- -

とりあえずmanコマンドで確認してみたら以下のように説明がありました。

NOTE
     The rm command uses getopt(3) to parse its arguments, which allows it to accept the `--' option which will cause it to stop pro-
     cessing flag options at that point.  This will allow the removal of file names that begin with a dash (`-').  For example:
           rm -- -filename
     The same behavior can be obtained by using an absolute or relative path reference.  For example:
           rm /home/user/-filename
           rm ./-filename

まとめると先頭がハイフンのファイル削除は以下のように3通りの方法で対処できるということでした。

# (1)rmの後ろに--オプションを設定したあとにファイル名を指定
rm -- -filename
# (2)絶対パスで指定
rm /home/user/-filename
# (3)相対パスで指定
rm ./-filename