ファイル名がダッシュ(ハイフンまたはマイナス記号)で始まるファイルを削除する方法は-
? SSH経由でリモートOSXサーバーに接続されており、私のディレクトリに次のファイルがあります。
tohru:~ $ ls -l
total 8
-rw-r--r-- 1 me staff 1352 Aug 18 14:33 --help
...
--help
CLIから正確にどのように削除しますか?この問題は時々何らかの形で発生しますが、これらのファイルは簡単に作成できますが、削除するのは困難です。
バックスラッシュを使ってみました。
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.';"