web-dev-qa-db-ja.com

日付で大量のファイルを削除する最良の方法

だから、私はたくさんのファイルが入ったフォルダを持っています、それらは秒単位で生成され、保持する必要があります私は90日後にしかそれらを削除できないので、あなたが推測するかもしれないように、私は大量のファイルを生成し、90日後に私は90日以上経過したファイルを削除できます。しかし、私はそれらのファイルを検索する部分で立ち往生しています。たくさんあるので、システムはリストが大きすぎて削除できないと不平を言います。

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

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

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

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

4
Lucas César

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

find /path/to/folder -mtime +90 -delete

または

find /path/to/folder -mtime +90 -exec rm {} +

(_ [をサポートしていないfindのバージョンの場合-deleteアクション)。

安全上の理由から、最初にこのコマンドの非破壊的なバージョンを使用し、特にcronまたは同様のものを介してこのアクションを自動化するつもりである場合は、削除したいものを完全に削除するようにしてください

find /path/to/folder -mtime +90 -print
5
user4556274