最近変更されたファイルと比較して、変更日に基づいてファイルを削除するソリューションはありますか?最新のファイルと比較して古いファイルを削除する必要があります。
たとえば、最後の変更日が2017年9月10日の場合は、10日より古いファイルを削除する必要があります。修正日が変更された場合も同様です。削除するファイルもそれに応じて変更する必要があります。
答え1
GNUツールの使用:
find . -type f -printf '%T@:%p\0' |
sort -rzn |
awk -v RS='\0' -v ORS='\0' -F: -v d=10 '
NR == 1 {t = $1 - 86400 * d}
$1 < t, 0 {sub(/[^:]*:/, ""); print}' |
xargs -r0 echo rm
(幸せになると削除されますecho
)。
find
各ファイルを印刷します123456.123:./path/to/file<NUL>
(123456.123
ファイルが最後に変更された時刻)。
数値順に並べ替えてから(最新ファイルから)、最新のファイルawk
(ソートされたリストの最初のレコードにある)より10日古いファイルを見つけます。
答え2
Linuxベースのオペレーティングシステムを使用している場合は、次のコマンドが役に立つと思います。
find /path/to/directory/ -mindepth 1 -mtime +7 -delete
+7 =変数、7日より古いファイルが削除されることを意味します
rmのスペースと引用符を参照してください。