私の開発ユニットで1週間を過ぎたファイルを見つけて削除する必要があります。このコンピュータで使用できるユーティリティの数は制限されています。-mtime
find
述語は使用できません。この場合、x日より古いすべてのファイルを確認する方法は?
ベストアンサー1
-mtime
はい、標準述部find
(反対に反対)ですが、ビルド時に機能が無効になっている単純な-delete
バージョンがあるようです。busybox
FEATURE_FIND_MTIME
ビジーボックスを有効にして再構築できる場合は、次のことができるはずです。
find . -mtime +6 -type f -exec rm -f {} +
またはFEATURE_FIND_DELETE
有効な場合:
find . -mtime +6 -type f -delete
そうでない場合は、1週間前に変更時間に設定されたファイルに別のオプションを使用できますfind -newer
(有効になっていると仮定)。FEATURE_FIND_NEWER
touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
find . ! -type f -newer ../ref -exec rm -f {} +
または-newer
使用できませんがsh
、サポートされている場合:[
-nt
touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
find . ! -type f -exec sh -c '
for f do
[ "$f" -nt ../ref ] || printf "%s\0" "$f"
done' sh {} + |
xargs -0 rm -f