有没有一个命令可以删除一个目录下所有没有修改过的文件氮天?我需要清理一些旧日志。
答案1
这将删除所有超过 5 天的文件,您也可以-name '*log'
在其中放置一个以更精确,并且您可能还想maxdepth
在 find 命令中指定 a。
find /some/dir -type f -mtime +5 -delete
答案2
与zsh
和(.m+n)
全局限定符:.
仅选择常规文件,m+n
选择修改超过的文件n几天前;
例如列出当前目录中9天前修改过的文件:
print -rl -- *(.m+9)
添加D
以包含点文件:
print -rl -- *(D.m+9)
或者如果您想递归(并仅列出以 结尾的文件.log
):
setopt extendedglob
print -rl -- **/*.log(.m+9)
如果您对结果满意,则替换print -rl
为;rm
尽管如果您有很多文件,您可能必须使用zargs
(以避免参数列表太长):
autoload zargs
zargs ./**/*(.m+9) -- rm