名前が「-」(ハイフン、ダッシュ、マイナス記号)で始まるファイルを削除する方法は?

名前が「-」(ハイフン、ダッシュ、マイナス記号)で始まるファイルを削除する方法は?

ファイル名がダッシュ(ハイフンまたはマイナス記号)で始まるファイルを削除する方法は-? SSH経由でリモートOSXサーバーに接続されており、私のディレクトリに次のファイルがあります。

tohru:~ $ ls -l
total 8
-rw-r--r--    1 me  staff  1352 Aug 18 14:33 --help
...

--helpCLIから正確にどのように削除しますか?この問題は時々何らかの形で発生しますが、これらのファイルは簡単に作成できますが、削除するのは困難です。

バックスラッシュを使ってみました。

rm \-\-help

引用してみました

rm "--help"

減算(ダッシュまたはハイフン)文字がオプションとして解釈されるのを防ぐ方法は?

答え1

次のように "--" を使用して rm 解析コマンドラインオプションを停止します。

rm -- --help

答え2

それともこれを行うことができます。

rm ./--help

答え3

findこれを行うには、以下を使用してください。

find . -name '--help' -delete

このような削除できるファイルが複数ある場合は、最初に(オプションなしで)findを実行してファイルのプレビューリストを取得し、ファイルリストがうまく表示されたらもう一度実行する必要がある-deleteため、これは良い方法です。と-delete

rm親指を上げること(特にプレビューを最初にすること)を避けるのは良い習慣であり、いつかは必然的にあなたを悩ませるfind間違いを避けるのに役立ちます。rm *

ただし、この検索はすべてのサブディレクトリを繰り返し探索するため、次のようにサブディレクトリの深さ制約を使用して実行することをお勧めします。

find . -maxdepth 1 -name '--help' -delete

これにより、検索は現在のディレクトリに制限されます。

答え4

残忍な解決策:

perl -e "unlink '--help' or die 'Could not unlink.';"

perl -e "rmdir '-d' or die 'Could not rmdir.';"

関連情報