我需要一个脚本来删除所有空文件并将已删除文件的列表写入文本文件。
删除文件有效。不幸的是,该列表不起作用。
find . -type f -empty -print -delete
我试过这样的事情:
-print >> test.txt
我需要一个脚本来删除所有空文件并将已删除文件的列表写入文本文件。
删除文件有效。不幸的是,该列表不起作用。
find . -type f -empty -print -delete
我试过这样的事情:
-print >> test.txt
当我将命令的输出重定向到 in 中的文件时.
,它会在写入任何内容之前被 find 命令删除,因为它是空的。
要解决此问题,请确保输出文件一开始不为空,或将其保存在其他位置:
find . -type f -empty -print -delete > ../log
或者
date > log
find . -type f -empty -print -delete >> log
或者,改编自@DanielFarrell 的评论:
find . -type f -empty -a -not -wholename ./log -print -delete > log
从查找操作中添加的-a -not -wholename ./log
排除项。./log
您可以将 -exec 选项与 rm 命令一起使用,而不是 -delete。
find . -type f -emtpy -exec rm --verbose {} \; >> logfile.txt
日志文件.txt:
removed './emptyfile1'
removed './emptyfile0'
或者您可以使用管道和 xargs 获得更干净的输出:
find . -type f -empty | xargs ls | tee -a logfile.txt | xargs rm
这只会给你删除的文件名。