如何删除目录中的所有空文件?
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)
假设我有一个如下所示的目录:
-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)