ワイルドカードを使用してディレクトリを再帰的に削除する方法は?

ワイルドカードを使用してディレクトリを再帰的に削除する方法は?

私はWD My Book World EditionでSSHを通じて作業しています。デフォルトでは、特定のディレクトリレベルで始まり、一致するすべてのサブディレクトリを再帰的に削除したいと思います.Apple*。どうすればいいですか?

頑張った

rm -rf .Apple*そしてrm -fR .Apple*

その名前と一致するサブディレクトリは削除されません。

ベストアンサー1

findツリー全体でオプションでタスクを実行するのに非常に便利です。

find . -type f -name ".Apple*" -delete

-type fここでディレクトリではなくファイルであることを確認してください。シンボリックリンク、ソケットなどはスキップするので、正確に望むものではないかもしれません。文字通りディレクトリではなく使用できますが、! -type d文字とブロックデバイスを削除することもできます。-type述語については、マニュアルページを調べることをお勧めしますfind

ワイルドカードを使用して厳密に実行するには、高度なシェルサポートが必要です。 Bash v4ではglobstarオプション、再帰を使用してサブディレクトリを一致させることができます**zshそしてkshこのモードもサポートします。それを使うとできますrm -rf **/.Apple*。これはPOSIX標準ではなく、移植性が高くないため、スクリプトでは使用しませんが、ワンタイムインタラクティブシェル操作には問題ありません。

おすすめ記事