通过命令行删除大小为 0 字节的文件?

use*_*115 17 command-line files

所以,我得到了一个充满其他目录的目录,我想知道是否可以删除没有大小的文件。通常这些文件是 0 字节,因为我想合并所有这些子目录,所以我可以用一个无重量的 0 字节文件替换一个完全合法的文件,然后我的合法文件就出来了。有什么方法可以删除零字节文件?

小智 37

使用Find命令按大小查找文件并将文件名打印到标准输出。

find . -type f -size 0b -print
Run Code Online (Sandbox Code Playgroud)

替代-print-delete删除的文件,而不是将它们打印在屏幕上。

find . -type f -size 0b -delete
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用 `-empty` 代替 `-size 0b`。 (7认同)

A.B*_*.B. 6

递归查找并删除所有大小为 0 的文件:

find . -type f -size 0 -print0 | xargs -I{} -0 rm {}
Run Code Online (Sandbox Code Playgroud)

例子:

% ls -og   
total 4
-rw-rw-r-- 1 0 Jun  7 20:31 bar
-rw-rw-r-- 1 5 Jun  7 20:29 foo

% find . -size 0 -print0 | xargs -I{} -0 rm {}

% ls -og                                      
total 4
-rw-rw-r-- 1 5 Jun  7 20:29 foo
Run Code Online (Sandbox Code Playgroud)