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 . -type f -empty -exec rm -f {} \;
其他回答
这适用于普通BSD,因此它应该与所有口味普遍兼容。例如pwd (.)
find . -size 0 | xargs rm
对于非递归删除(使用du和awk):
rm `du * | awk '$1 == "0" {print $2}'`
搜索并删除当前目录及其子目录下的空文件。
find . -type f -empty -delete
-type f是必要的,因为目录也被标记为大小为0。
点。(当前目录)是开始搜索目录。如果你有GNU find(例如不是Mac OS),在这种情况下你可以省略它:
find -type f -empty -delete
从GNU找到文档:
如果没有指定要搜索的文件,则使用当前目录(.)。
您可以使用find命令来执行此操作。我们可以用-type f来匹配文件,用-size 0来匹配空文件。然后我们可以用-delete删除匹配项。
find . -type f -size 0 -delete
这将删除一个目录(或以下目录)中大小为0的所有文件。
find /tmp -size 0 -print -delete
如果你只想要一个特定的文件;
if [ ! -s /tmp/foo ] ; then
rm /tmp/foo
fi