如何在包含子目录的目录中查找所有零字节文件

我怎样才能find一个目录中,甚至在子目录中的所有零字节文件?

我已经这样做了:

#!/bin/bash lns=`vdir -R *.* $dir| awk '{print $8"\t"$5}'` temp="" for file in $lns do if test $file = "0" then printf $temp"\t"$file"\n" fi temp=$file done 

但我只得到该目录文件的结果不是所有的文件,如果有任何文件名有一个空格,那么我只得到第一个字,其次是选项卡

谁能帮我?

Solutions Collecting From Web of "如何在包含子目录的目录中查找所有零字节文件"

要打印大小为0的$ dir中的所有文件的名称:

 find "$dir" -size 0 

请注意,并不是所有的find实现都会默认产生输出,所以你可能需要这样做:

 find "$dir" -size 0 -print 

除上述答案之外:

如果你想删除这些文件

 find $dir -size 0 -type f -delete 

不,你不必烦恼。

 find $dir -size 0 ! -name "*.xml" 

这是搜索大小0的正确方法:

 find /path/to/dir -size 0 -type f -name "*.xml" 

搜索大小为0的多个文件扩展名:

 find /path/to/dir -size 0 -type f \( -iname \*.css -o -iname \*.js \) 

注意:如果删除了\(… \),则结果将是所有符合此要求的文件,因此忽略大小为0的文件。