web-dev-qa-db-ja.com

OS Xは、名前にスペースが含まれているフォルダーを再帰的に検索してRMしますか?

WD My Cloud NAS最初に通知したり尋ねたりすることなく、jpg付きのすべてのフォルダーに非表示の.wdmcフォルダーを追加しました。私のNASドライブには何百もあります。メディアサーバーと関係がありますが、その機能をオンにしたことはありません。これらのフォルダには、バックアップとディスクスペースの使用量を増大させるデータが詰め込まれています。削除する必要がありますが、ディスク全体にあり、ディレクトリ構造の奥深くにある場合もあります。

Superuser.comでこのアドバイスを見つけ、ターミナルで実行したところ、これらのフォルダーを削除するのに一晩中費やしたようでした。ただし、ターゲットフォルダまたはその中のデータは削除されませんでした。

$ find . -type d -name '.wdmc' -print -exec echo rm -rf {} \; 

私もこれを見つけましたが、名前にスペースがないフォルダーでのみ機能しました:

rm -rf `find . -type d -name .wdmc`

どういうわけか、パスにフォルダ名のスペースをエスケープする方法が必要ですか?

5
Preston

バージョン2(xargs経由のパイプ)

manfindpageを調べた後( たとえばここを参照print0オプションとxargsを使用してディレクトリ名をrmにパイプするソリューションを見つけました。

$ find . -type d -name '.wdmc' -print0 | xargs -0 rm -rf

これは、スペースやその他の非ASCII文字を含むディレクトリ名でも機能するはずです。

バージョン1(空の.wdmcディレクトリでのみ機能します)

または、find-deleteオプションを使用することもできます。

$ find . -type d -name '.wdmc' -delete
6
hakaze

Finderアプリも使用できます。

右上隅に* .wdmcと入力するだけの検索フィールドがあります。

デフォルトでは、検索範囲はMac全体ですが、検索を開始するときに変更できます。最上位のディレクトリにいる場合は、現在のフォルダに切り替えます。Finderは、このフォルダ内のすべてのファイルを再帰的に検索します。

あなたがそれらをすべて魔女コマンド+ aとマークしてそれらを削除することができるよりも

0
chris

やってみました:

$ find . -type d -name '*.wdmc' -print -exec echo rm -rf "{}" \; 

Rmの代わりにlsでテストしている私のMacで動作します。

0
Marcelo