ターゲット ディレクトリが空の場合は、検索を使用し、ディレクトリのみでフィルタリングし、名前でフィルタリングし、rmdir を実行します:
find . -type d -name a -exec rmdir {} \;
その内容を再帰的に削除する場合は、 -exec rmdir {} \;
を置き換えます -delete
で または -prune -exec rm -rf {} \;
.他の回答には、これらのバージョンに関する詳細が含まれており、クレジットも含まれています。
次のように、名前「a」に対してfindを使用し、rmを実行して、必要に応じて名前を付けたものを削除します:
find . -name a -exec rm -rf {} \;
最初に ls を使用してリストをテストします:
find . -name a -exec ls {} \;
これによりプレーンファイルではなくディレクトリのみが削除されるようにするには、「-type d」引数を使用します (コメントで提案されているように):
find . -name a -type d -exec rm -rf {} \;
「{}」は、見つかった各ファイル「a」の置換です。exec コマンドは、置換によってそれぞれに対して実行されます。
これも機能します - 「a」と呼ばれるすべてのフォルダとその内容が削除されます:
rm -rf `find . -type d -name a`