GNU/Linux >> Linux の 問題 >  >> Linux

ワイルドカードを使用してディレクトリを再帰的に削除するにはどうすればよいですか?

WD My BookWorldEditionでSSHを使用しています。基本的に、特定のディレクトリレベルから始めて、.Apple*に一致するすべてのサブディレクトリを再帰的に削除したいと思います。 。どうすればいいですか?

試しました

rm -rf .Apple* およびrm -fR .Apple*

サブディレクトリ内でその名前に一致するディレクトリも削除されませんでした。

承認された回答:

find ツリー全体でアクションを選択的に実行するのに非常に便利です。

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

ここで、-type f ディレクトリではなくファイルであることを確認してください。シンボリックリンクやソケットなどもスキップされるため、希望どおりのファイルではない可能性があります。 ! -type d 、これは文字通りディレクトリではないことを意味しますが、文字を削除してデバイスをブロックすることもできます。 -typeを確認することをお勧めします findのマニュアルページの述語 。

ワイルドカードを使用して厳密に行うには、高度なシェルサポートが必要です。 Bashv4にはglobstarがあります オプション。**を使用してサブディレクトリを再帰的に照合できます。 。 zsh およびksh このパターンもサポートします。これを使用して、rm -rf **/.Apple*を実行できます。 。これはPOSIX標準ではなく、移植性も低いため、スクリプトでの使用は避けますが、1回限りのインタラクティブなシェルアクションの場合は問題ありません。


Linux
  1. Linuxでホームディレクトリのユーザーアカウントを削除する方法

  2. Linux で空のディレクトリとファイルを見つけて削除する方法

  3. Linux で UID 0 の非ルート ユーザーを削除する方法

  1. Linuxでディレクトリを再帰的に検索および削除する方法

  2. 末尾にスラッシュが付いたディレクトリをリストするためにLsを取得するにはどうすればよいですか?

  3. Unix で空のディレクトリとファイルを見つけて削除する方法

  1. LinuxでCでディレクトリを再帰的にリストする方法は?

  2. Linux でこの名前のファイルを削除する方法:-]???????q

  3. 変な名前のファイルを削除するには?