假设我有一个看起来像这样的目录:
-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.
如果相关,则假设文件的名称比文件#。
更随机如何在目录中只删除空文件(意味着文件中有0个字节),使用某种形式的rm和grep或sed?
答案 0 :(得分:3)
最简单的方法是使用find
测试和-empty
操作运行-delete
,例如:
find -type f -empty -delete
该命令查找当前目录及其子目录中的所有文件(-type f
),测试匹配的文件是否为空,如果-delete
返回,则应用-empty
操作真
如果您想将操作限制在特定的深度级别,请使用-mindepth
和-maxdepth
全局选项。
答案 1 :(得分:0)
命令是:
cd DirectoryWithTheFiles
rm -f $(find . -size 0)