web-dev-qa-db-ja.com

年齢によるファイルの削除

[〜#〜] n [〜#〜]日で変更されていないディレクトリ内のすべてのファイルを削除するコマンドはありますか?古いログをクリーンアップする必要があります。

17
user1024

これにより、5日以上経過したすべてのファイルが削除されます。-name '*log'より正確にするには、そこにも_を指定し、findコマンドでもmaxdepthを指定することをお勧めします。

find /some/dir -type f -mtime +5 -delete

26
Mark McKinstry

zshおよび(.m+n)glob qualifiers の場合:.は通常のファイルのみを選択し、m+nn日前;
例えば。現在のディレクトリで9日以上前に変更されたファイルを一覧表示します。

print -rl -- *(.m+9)

Dを追加して、ドットファイルを含めます。

print -rl -- *(D.m+9)

または再帰したい場合(および.logで終わるファイルのみを一覧表示するなど):

setopt extendedglob
print -rl -- **/*.log(.m+9)

結果に満足したら、print -rlrmに置き換えます。ただし、ファイルが多い場合はzargsを使用する必要があります(引数リストが長すぎることを避けるために):

autoload zargs
zargs ./**/*(.m+9) -- rm
3
don_crissti