Linux
在帶有精簡busybox的系統上查找超過x天的文件
我需要在開發單元中查找並刪除超過 1 週的文件。本機上可用的實用程序數量有限。
-mtime
find
的謂詞不可用。在這種情況下,如何檢查所有早於 x 天的文件?
-mtime
是find
(與 相反-delete
)的標準謂詞,但看起來您有一個精簡版本的busybox
,其中該FEATURE_FIND_MTIME
功能已在建構時被禁用。如果您可以在啟用它的情況下重建busybox,您應該能夠:
find . -mtime +6 -type f -exec rm -f {} +
或者如果
FEATURE_FIND_DELETE
也啟用:find . -mtime +6 -type f -delete
如果沒有,其他選項可能是在設置為具有一周前修改時間的文件上使用
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