如何删除目录中空的所有文件?
假设我有一个目录,看起来像:如何删除目录中空的所有文件?
-rw-r--r-- 1 some-user wheel 0 file1
-rw-r--r-- 1 some-user wheel 257 file2
-rw-r--r-- 1 some-user wheel 0 file3
-rwxr-xr-x 1 some-user wheel 212 file4
-rw-r--r-- 1 some-user wheel 2012 file5
.... more files here.
如果是相关的,假设文件的名称是更随机不仅仅是文件#。
如何在某个目录中仅使用rm和grep或sed以某种形式删除空的文件(即文件中有0个字节)?
最简单的方法是用-empty
测试和-delete
动作,例如运行find
:
find -type f -empty -delete
该命令会在当前目录下的所有文件(-type f
)及其子目录,测试如果匹配的文件是空的,并适用-delete
动作,如果-empty
返回true。
如果要将操作限制在特定深度级别,请使用-mindepth
和-maxdepth
全局选项。
@Inian GNU'find'手册指出''-delete'“是由BSD系列操作系统引入的,所以它应该比GNU'find'系统更广泛。 –
@BenjaminW .:干杯!无法直接在['POSIX'](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html)页面上找到,只需在'FreeBSD'页面中确认 – Inian
的命令是:
cd DirectoryWithTheFiles
rm -f $(find . -size 0)
这对带有空格的文件名有影响。 –
Stack Overflow是用于编程和发展问题的站点。这个问题似乎与题目无关,因为它不涉及编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://stackoverflow.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Unix&Linux堆栈交换](http://unix.stackexchange.com/)会是一个更好的地方。另请参阅[我在哪里发布有关Dev Ops的问题?](http://meta.stackexchange.com/q/134306) – jww
对不起。我需要知道我写的一个清理脚本。谢谢! – MisterHuac