Skip to content

ディレクトリを再帰的に検索してファイルを削除する

macOS では .DS_Store (Desktop Services Store) というファイルが自動的に作成されます。 このファイルに限らないのですが、何れかの理由で「ディレクトリを再帰的に検索し、対象ファイルを削除したい」というケースがあります。 こういった場合は以下のようなシェルスクリプトで対応することが可能です。 -name 指定されているファイル名を変更することで、他のファイルを対象することも可能です。

1
2
#!/bin/sh
find . -name ".DS_Store" -delete

誤った使い方

オプションの指定方法は非常に重要です。 一見、下記は問題無さそうに見えますが、実際には「find . で検索された結果 = 全てのファイルを -delete (削除) しようとする」為、全てのファイルが削除されてしまいます。

1
find . -delete -name ".DS_Store"