Linux查找和删除文件,但重定向要删除的文件名
是否有一种方法可以在删除文件之前将文件名写入文件,以供日后检查已删除的内容时参考Linux查找和删除文件,但重定向要删除的文件名,linux,find,command,delete-file,Linux,Find,Command,Delete File,是否有一种方法可以在删除文件之前将文件名写入文件,以供日后检查已删除的内容时参考 find <PATH> -type f -name "<filePattern>" -mtime +1 -delete find-type f-name”“-mtime+1-delete 您可以使用-exec和rm-v: find <PATH> -type f -name "<filePattern>" -mtime +1 -exec rm -v {} \; f
find <PATH> -type f -name "<filePattern>" -mtime +1 -delete
find-type f-name”“-mtime+1-delete
您可以使用-exec
和rm-v
:
find <PATH> -type f -name "<filePattern>" -mtime +1 -exec rm -v {} \;
find-type f-name”“-mtime+1-execrm-v{}\;
rm-v
将报告它正在删除的内容。只需在调用find
时添加一个-print
表达式即可:
find <PATH> -type f -name "<filePattern>" -mtime +1 -delete -print > log
find-type f-name”“-mtime+1-delete-print>log
我不确定这是在文件解除链接之前还是之后打印名称,但这不重要。我怀疑
-delete-print
会在打印之前取消链接,而-print-delete
会在取消链接之前进行打印。通过类似的方式,您可以在exec语句中执行多个命令,如log to file、rm file以及您需要的其他命令
find <PATH> -type f -name "<filePattern>" -mtime +1 -exec sh -c "echo {} >>mylog; rm -f {}" \;
find-type f-name”“-mtime+1-exec sh-c“echo{}>>mylog;rm-f{}”;
正如威廉所说,您可以使用-print
。但是,您也可以使用-fprint
标志,而不是-print>log
您可能需要以下内容:
find <PATH> -type f -name "<filePattern>" -mtime +1 -fprint "<pathToLog>" -delete
来自名为
removelogs.sh的shell脚本
在终端中运行命令sh removelogs.sh
这是removelogs.sh文件中的文本
cd /var/log;
date >> /var/log/removedlogs.txt;
find . -maxdepth 4 -type f -name \*log.old -delete -print >> /var/log/removedlogs.txt
- .-要在此位置运行!!!因此,请确保您不在根文件夹中运行此文件强>
- -maxdepth-防止其失控
- -键入-确保仅键入文件
- -名称-确保仅过滤您的名称
- -打印-将结果发送到标准输出
- -删除-删除所述文件
- >>-附加到文件不覆盖>创建新文件
在CENTOS7上为我工作fprint覆盖文件;附加到文件不是更好吗???我看过手册,但对我来说太复杂了。
cd /var/log;
date >> /var/log/removedlogs.txt;
find . -maxdepth 4 -type f -name \*log.old -delete -print >> /var/log/removedlogs.txt