ハイフンで始まるファイルの削除方法

何の記事?

先日仕事中になぜかハイフン「-」で始まるファイルがサーバーにあることを発覚しました。

Linux OS だったため GUI でのファイル削除はできず・・・
一方 rmコマンドで消そうにもハイフンをつけるとオプションと扱われてしまい消せない事態に陥りました笑

そこで今回は Linux OS でハイフンで始まるファイルを削除する方法を記載します!!


問題点

前項で記載の通りですが、改めてどんな状況かを記載します。
仮に「-tmp」というファイルができてしまったとします。

そこで Linux のターミナルでファイルやディレクトリを削除する rm コマンドで削除を試みます。

$ rm -tmp
rm: invalid option -- 'tmp'
Try `rm --help' for more information.

Linux のコマンドでは「-」をつけるとオプションと解釈されてしまい上記のようなエラーが表示されました。

ちなみに rm にある本当のオプションの一例を以下に示します。

-f, --force エラーメッセージを表示しない

-i ファイルの削除前に確認する

-I 削除の対象が4つ以上の場合のみ削除の確認をする

-r, -R ディレクトリも削除の対象とする

-v 削除の詳細表示


解決策①

ディレクトリを指定してあげる方法があります。

例えば以下のようです。

rm ./-tmp

こうすればハイフンがオプションではない事が OS に伝えられますね。


解決策②

二つ目の方法は、ハイフンを二つつけてあげる方法です。
説明が難しいので実際にコマンドを見てみましょう。

rm -- -tmp

本来オプションを書く場所にハイフンを二つ書く事で回避できるんですね。知らなかった・・・


宣伝

twitter フォローも是非よろしくお願いします!

twitter.com

また、最近プログラミングメンターを始めました。お気軽にご相談ください。

https://menta.work/user/12194


最後に

変なファイルを間違えて作ることはよくあるのですが、ハイフンで始まるファイルは初めて作ってしまいました笑

しかも消せない!!みたいに焦ったので、同じ状況の方のお力になるとうれしいなと思います。