Linux:使用一个异常文件删除所有超过某个日期的文件
我可以通过以下方式删除文件夹中超过7天的所有常规文件:Linux:使用一个异常文件删除所有超过某个日期的文件,linux,file,command-line,Linux,File,Command Line,我可以通过以下方式删除文件夹中超过7天的所有常规文件: find /path/to/dir -type f -mtime +7 -exec rm {} \; 只有一个问题。这里有一个文件(.gitignore),我想保留它。我尝试使用regex,但显然findutils regex不支持负前瞻(?!gitignore) 还有其他想法吗?使用-name.gitignore find /path/to/dir ! -name .gitignore -type f -mtime +7 -exec r
find /path/to/dir -type f -mtime +7 -exec rm {} \;
只有一个问题。这里有一个文件(.gitignore),我想保留它。我尝试使用regex,但显然findutils regex不支持负前瞻(?!gitignore)
还有其他想法吗?使用
-name.gitignore
find /path/to/dir ! -name .gitignore -type f -mtime +7 -exec rm {} \;
可以将多个参数分组在转义括号内。例如,要删除除.gitignore
和javascript文件(以.js结尾)
以外的所有文件,请执行以下操作:
-o
表示或
我认为“!”需要转义,否则shell可能会尝试适应前面的命令?ie\代码>而不是代码>?(虽然不确定:/)ManFind提到了逃离的必要性代码>,尽管我从未需要这样做。您在运行上述命令时是否遇到问题?上一个命令的shell命令是代码>完美。仅供参考,它对我来说非常有效,而且不会逃跑!
find /path/to/dir ! \( -name ".gitignore" -o -name "*.js" \) -type f -mtime +7 -exec rm {} \;