サイズと拡張子でファイルを検索するには?

サイズと拡張子でファイルを検索するには?

ディレクトリとすべてのサブディレクトリから特定の拡張子を持つ空のファイルをすべて削除したいと思います。

答え1

各ファイルを削除して確認して、次のことを試すことができます。

$ find /path/to/dir -type f -name "*.txt" -empty -ok rm {} \;

またはもう少し自信がある場合:

$ find /path/to/dir -type f -name "*.txt" -empty -exec rm {} \;

答え2

一般的に、"ディレクトリとそのサブディレクトリに..."への答えは、一般的なファイルの一致、特定の拡張子の制限、および空のファイルの制限についてfind-type f-name '*.ext'-size 0

find /some/dir -name '*.ext' -type f -size 0 -exec rm {} +

バージョンがfind古すぎる場合は... -exec rm {} \;を代わりに使用できます(一度に多くのファイルを呼び出す+ので、使用する方が高速です)。rmLinux、FreeBSD、NetBSD、およびOSXでは、組み込みのfindタスクと-delete述語-empty-size 0通常のファイルと同じ)を使用できます。

find /some/dir -name '*.ext' -type f -empty -delete

zshでは**globを使用してサブディレクトリに再帰できます。グローバル予選.サイズ0()の一般ファイル()に一致を制限しますL0

rm /some/dir/**/*.ext(.L0)

関連情報