如果linux中某个文件的大小为0,如何删除该文件?我想在没有任何额外脚本的情况下在crontab中执行此命令。
l filename.file | grep 5th-tab | not eq 0 | rm
像这样的东西?
发布于 2011-03-30 00:41:24
这将删除目录(及以下目录)中大小为零的所有文件。
find /tmp -size 0 -print -delete
如果你只想要一个特定的文件;
if [ ! -s /tmp/foo ] ; then
rm /tmp/foo
fi
发布于 2016-02-28 21:03:47
您可以使用命令find
来执行此操作。我们可以使用-type f
匹配文件,也可以使用-size 0
匹配空文件。然后我们可以使用-delete
删除匹配项。
find . -type f -size 0 -delete
发布于 2011-05-13 17:35:22
在Linux上,当您不需要find(1)时,stat(1)命令很有用:
(( $(stat -c %s "$filename") )) || rm "$filename"
这里的-c %s
命令允许我们只获取文件大小,即stat (有关其他格式,请参阅手册页)。我正在运行stat程序并捕获它的输出,这就是$( )
。这个输出是用数字表示的,这是外部的(( ))
。如果大小为零,则为FALSE,因此将执行OR的第二部分。非零(非空文件)将为TRUE,因此不会执行rm。
https://stackoverflow.com/questions/5475905
复制相似问题