今日作成されていないファイルをすべて削除する方法

今日作成されていないファイルをすべて削除する方法

delete all今日作成されていないフォルダのファイルが欲しいです。以下を使用して、今日生成されたファイルのリストを取得する方法を知っています。

find . -type f -mtime -1

ところで、今日作成されていないすべてのファイルのリストを取得する方法がわかりません。デフォルトでは、フォルダに今日ではなく古いタイムスタンプを含むファイルがあるかどうかを確認する必要があります。既存のファイルがある場合は削除します。

ベストアンサー1

find . -type f -mtime +0 -exec rm -f {} +

または

find . -type f ! -mtime -1 -exec rm -f {} +

内容が最後に変更されてから24時間以上経過した一般ファイルは削除されます(-mtime +0つまり、その内容年齢日単位で測定されます(整数で半減し、日は24時間または86400 Unix epoch秒)。厳密にゼロより大きい)。

一部のfind実装には-delete代わりに使用できる述語があり、-exec rm -f {} +より安全で効率的です。

GNUを使用すると、今日00:00:00より前に最後に変更されたファイルの述語をfind追加できます-daystart。これには、24時間経っても昨日最後に変更されたファイルが含まれます。

一部のfind実装では、次のこともできます。

find . ! -newermt 00:00:00 -delete

今日00:00:00より前(または正確に)最後に変更されたファイルを削除します。

おすすめ記事