2016-12-29 125 views
1

假设我有一个目录,看起来像:如何删除目录中空的所有文件?

-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个字节)?

+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

+0

对不起。我需要知道我写的一个清理脚本。谢谢! – MisterHuac

回答

3

最简单的方法是用-empty测试和-delete动作,例如运行find

find -type f -empty -delete 

该命令会在当前目录下的所有文件(-type f)及其子目录,测试如果匹配的文件是空的,并适用-delete动作,如果-empty返回true

如果要将操作限制在特定深度级别,请使用-mindepth-maxdepth全局选项。

+0

@Inian GNU'find'手册指出''-delete'“是由BSD系列操作系统引入的,所以它应该比GNU'find'系统更广泛。 –

+1

@BenjaminW .:干杯!无法直接在['POSIX'](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html)页面上找到,只需在'FreeBSD'页面中确认 – Inian

0

的命令是:

cd DirectoryWithTheFiles 
rm -f $(find . -size 0) 
+3

这对带有空格的文件名有影响。 –

相关问题