繁体   English   中英

Linux:使用一个特殊文件删除每个早于日期的文件

[英]Linux: Delete every file older than a date with one exceptional file

我可以通过以下方式删除7天以上文件夹中的所有常规文件:

find /path/to/dir -type f -mtime +7 -exec rm {} \;

有一个问题。 这里有一个文件(.gitignore)我想保留。 我尝试使用正则表达式,但显然findutils正则表达式不支持负向前瞻(?!gitignore)

还有其他想法吗?

! -name .gitignore ! -name .gitignore

find /path/to/dir ! -name .gitignore -type f -mtime +7 -exec rm {} \;

您可以在转义括号内对多个参数进行分组。 例如,删除除.gitignore和javascript文件(以.js)结尾.js)之外的所有文件:

find /path/to/dir ! \( -name ".gitignore" -o -name "*.js" \) -type f -mtime +7 -exec rm {} \;

-o表示or

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM