当前位置:  开发笔记 > 运维 > 正文

删除空(零字节)文件

如何解决《删除空(零字节)文件》经验,为你挑选了2个好方法。

仅使用Mac OS X原生工具查找和删除空(零字节)文件的最简单/最佳方法是什么?



1> Charles Duff..:

很容易:

find . -type f -size 0 -exec rm -f '{}' +

忽略任何具有xattr内容的文件(假设MacOS find实现):

find . -type f -size 0 '!' -xattr -exec rm -f '{}' +

也就是说,请注意许多xattrs并不是特别有用(例如,com.apple.quarantine存在于所有下载的文件中).



2> Alex North-K..:

您可以通过以下方式降低可能大量的分支运行/ bin/rm:

find . -type f -size 0 -print0 | xargs -0 /bin/rm -f

上面的命令非常便携,可以在大多数Unix版本上运行,而不仅仅是Linux机器上运行,并且可以在几十年前的Unix版本上运行.对于长文件列表,/bin/rm可以执行多个命令以防止列表超出命令行长度限制.

在较新的操作系统上使用较少的键入可以实现类似的效果,使用+in find来替换xargs样式中最常见的用法仍然适用于其他操作/bin/rm.在这种情况下,find将处理将真正长文件列表拆分为单独的/bin/rm命令.在{}习惯上报价保持做任何给它的外壳; 引号并不总是必需的,但是shell引用的复杂性太过于涉及到这里,所以当有疑问时,包括撇号:

find . -type f -size 0 -exec /bin/rm -f '{}' +

在Linux中,通常可以使用简化方法-delete.需要注意的是近期find-delete主要是直接与实现unlink(2),不生成一个数不胜数的/bin/rm命令,甚至是少数xargs+做.的Mac OS find也有-delete-empty初选.

find . -type f -empty -delete

要踩空(和新清空的)文件 - 目录 - 许多现代Linux主机可以使用这种有效的方法:

find . -empty -delete

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有