Linux 如何删除目录中的所有空文件?

Linux 如何删除目录中的所有空文件?,linux,shell,rm,Linux,Shell,Rm,假设我有一个目录,如下所示: -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. 如果相关,则假设文件名比文件名更随机 如

假设我有一个目录,如下所示:

-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 test和-delete操作运行find,例如:

find -type f -empty -delete
该命令查找当前目录及其子目录中的所有文件-类型f,测试匹配的文件是否为空,并应用-delete操作,如果-empty返回true

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

最简单的方法是使用-empty test和-delete操作运行find,例如:

find -type f -empty -delete
该命令查找当前目录及其子目录中的所有文件-类型f,测试匹配的文件是否为空,并应用-delete操作,如果-empty返回true

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

该命令是:

cd DirectoryWithTheFiles
rm -f $(find . -size 0)
命令是:

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

对于带空格的文件名,这会断开。对于带空格的文件名,这会断开。@Inian GNU find手册指出,-delete是由BSD系列操作系统引入的,因此它应该比仅在带GNU find的系统上更广泛地可用。@BenjaminW.:干杯!无法在此页面上直接找到,仅在FreeBSD中确认page@InianGNU find手册指出,-delete是由BSD系列操作系统引入的,因此它的可用性应该比GNU find系统更广泛。@BenjaminW.:干杯!无法在此页面上直接找到,刚刚确认FreeBSD pageStack Overflow是一个用于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。我也很抱歉。我需要知道我正在写的清理脚本。谢谢Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。我也很抱歉。我需要知道我正在写的清理脚本。谢谢