日付別に多数のファイルを削除する最良の方法

日付別に多数のファイルを削除する最良の方法

そのため、2番目に作成され、保存する必要がある多くのファイルがあるフォルダがあり、90日後にのみ削除できます。推測できるように、多くのファイルを生成し、その後は90日から90日を過ぎたファイルを削除できました。しかし、ファイルが多すぎてシステム内のリストが大きすぎて削除できないと文句を言うので、これらのファイルを検索する部分で停止しました。

これを通過できる最良の解決策は何ですか?ファイル名はタイムスタンプパターンなのでそれで始めることができますが、しばらくしてすべてのファイルが削除されたことを確認したいと思います。

私はこれらの方法を試しました

rm -rf *
find /path/to/files/ -type f -name '*.ts' -mtime +90 -exec rm {} \; 

また、ファイル名で削除するスクリプトを作成できましたが、この方法ではすべてのファイルが削除されることを保証することはできません。

ベストアンサー1

ファイルが最初に作成されてから変更されていない場合は、90日以上変更されていない場合は削除できます。

find /path/to/folder ! -type d -mtime +90 -delete

または

find /path/to/folder ! -type d -mtime +90 -exec rm -f {} +

findこの-deleteタスクをサポートしていないバージョンの場合)

セキュリティ上の理由から、まずこのコマンドの非破壊バージョンを使用し、削除する内容が正しく削除されていることを確認する必要があります。特に、cronこれと同様の手段で自動化したい場合は、さらにそうです。例えば:

find /path/to/folder ! -type d -mtime +90 -print

参考にして-mtime +90確認してください時間の変更ファイルとリターン本物整数日数(86400秒単位)で下げると、年齢は次のようになります。厳しく90より大きい場合、最後に変更された日付が91日以上のファイルが一致します。

おすすめ記事