linux下,如果文件大小为0,如何删除。我想在没有任何额外脚本的crontab中执行这个。
l filename.file | grep 5th-tab | not eq 0 | rm
像这样的东西?
linux下,如果文件大小为0,如何删除。我想在没有任何额外脚本的crontab中执行这个。
l filename.file | grep 5th-tab | not eq 0 | rm
像这样的东西?
当前回答
你会想要使用find:
find . -size 0 -delete
其他回答
您可以使用find命令来执行此操作。我们可以用-type f来匹配文件,用-size 0来匹配空文件。然后我们可以用-delete删除匹配项。
find . -type f -size 0 -delete
你会想要使用find:
find . -size 0 -delete
find . -type f -empty -exec rm -f {} \;
在Linux上,当你不需要find(1)时,stat(1)命令很有用:
(( $(stat -c %s "$filename") )) || rm "$filename"
这里的stat命令只允许我们获得文件大小,即-c %s(有关其他格式,请参阅手册页)。我正在运行stat程序并捕获它的输出,即$()。这个输出以数字形式显示,这就是outer(())。如果size为0,则为FALSE,因此执行OR的第二部分。非零(非空文件)将为TRUE,因此rm将不会被执行。
这适用于普通BSD,因此它应该与所有口味普遍兼容。例如pwd (.)
find . -size 0 | xargs rm