为了查找并删除空文件,我发现了以下 Stack Overflow 问题:
https://stackoverflow.com/q/3157343
那里大约有 10 个答案,但所有答案都使用-size 0
而不是-empty
。
例如,+153 答案:
find . -name 'file*' -size 0 -print0 | xargs -0 rm
另一个答案,+100:
find -name 'file*' -size 0 -delete
为什么?换句话说,-size 0
相比而言,有哪些优势-empty
?
对于 macOS,我个人的解决方案是
find . -mindepth 1 -maxdepth 1 -type f -empty -print -delete
该
-size
操作数由 POSIX 指定,因此find
以下任何支持它的实现-empty
都不支持。因此,并非到处都可用。因此,-size 0
如果您不知道find
将使用哪个版本,则使用它来检查文件是否为空更为安全。您的个人解决方案明确检查常规文件,因此这与此无关,但
-empty
也匹配空目录,而 并非如此-size 0
。至少在GNUfind
中,它不匹配常规文件或目录以外的任何内容,无论大小如何。