按年龄删除文件


16

是否有命令删除目录中所有在N天内未修改的文件?我需要清理一些旧日志。

Answers:


24

这将删除所有早于5天的文件,您也可以-name '*log'在其中放置一个以更加精确,并且您可能还希望maxdepth在find命令中指定一个。

find /some/dir -type f -mtime +5 -delete


5
尽管明智的sysadmin管理员可以尝试运行,-ls而不是-delete确保这样做不会删除他们想要保留的任何内容。是的,从这里的经验来看。
沙杜尔2012年

2
从经验上讲,他们还检查自己的道路。是否,因为我曾经做过/ some/dir/版本。:(
Hennes

3

With zsh(.m+n) Glob限定词.仅选择常规文件,m+n选择n天前修改过的文件;
例如,列出当前目录中超过9天之前已修改的文件:

print -rl -- *(.m+9)

添加D以包含点文件:

print -rl -- *(D.m+9)

或如果您想递归(并仅列出例如以结尾的文件.log):

setopt extendedglob
print -rl -- **/*.log(.m+9)

如果您对结果感到满意,请替换print -rlrm;尽管zargs如果文件太多,则可能必须使用(以避免参数列表过长):

autoload zargs
zargs ./**/*(.m+9) -- rm
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.