渋谷ほととぎす通信

完全趣味でやってる技術メモ。※所属団体とは一切関係がありません。

検索ヒットしたサブフォルダを一括削除


経緯としては以下に記事にまとめていますが、この10連休GW中にゲーム用効果音を探してて、Mutantでファイル管理をする上で必要になった作業でした。

ダウンロードしたzipファイルにWAVとMP3フォルダが存在してて、MP3フォルダを事前に削除して管理したいなあと思って、ターミナルでコマンドを叩いたのですが、僕のMac知識ではサクッとできなかったので、メモっておきます。

削除コマンドなのでrmでは無かった

動かないクソコードはコチラ。

rm -rf MP3

カレントディレクトリにMP3フォルダが存在すれば消せることができますが、サブフォルダに存在すると不可能です。

  • ./MP3/hoge/・・・・削除可能
  • ./hoge/MP3/foo・・・削除不可

findコマンドを使用

findコマンドで検索し、ヒットした対象にrmコマンドを実行します。

find ./ -type d -name MP3 -exec rm -rv {} +
  • -type dで検索対象をフォルダにする
  • -execで検索ヒットした対象に対してコマンドを実行するオプション

ちなみに-type fとすると検索対象をファイルに限定することも可能です。

以上

環境

  • macOS HighSierra 10.13.6

参考

今週のお題「特大ゴールデンウィークSP」