したい delete all
今日作成されていないフォルダ内のファイル。今日作成されたファイルのリストを使用して取得する方法を知っています
find . -type f -mtime -1
しかし、今日作成されていないすべてのファイルのリストを取得する方法がわかりません。基本的に、今日を除いて古いタイムスタンプのファイルがフォルダにあるかどうかを確認する必要があります。存在する場合は、古いファイルのみを削除する必要があります。
find . -type f -mtime +0 -exec rm -f {} +
または
find . -type f ! -mtime -1 -exec rm -f {} +
コンテンツが24時間以上前に最後に変更された通常のファイルを削除します(-mtime +0
の意味:その年齢日数(整数に切り捨て、日数は24時間、または86400 Unixエポックの2番目の期間)は厳密に0)より大きくなります。
一部のfind
実装には-delete
述語があります。これを-exec rm -f {} +
の代わりに使用すると、より安全で効率的になります。
GNU find
で、今日00:00:00より前に最後に変更されたファイルの場合、-daystart
述語を追加できます。これにはファイルが含まれます24時間以内であっても、昨日最後に変更されました。
いくつかのfind
実装では、次のこともできます。
find . ! -newermt 00:00:00 -delete
今日の00:00:00より前(または正確に)に最後に変更されたファイルを削除します。
findには、パラメータ-not
または!
があり、ファイルを削除するために-delete
の後に続くパラメータを無効にします。
find . ! -mtime -1 -type f -delete
-not
はPOSIXに準拠していないことに注意してください