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

How to remove all files that are empty in a directory?

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

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

最简单的方法是 运行 find 加上 -empty 测试和 -delete 操作,例如:

find -type f -empty -delete

该命令查找当前目录及其子目录中的所有文件(-type f),测试匹配的文件是否为空,并应用-delete动作,如果-empty returns .

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

命令是:

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