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

时间:2013-03-29 12:54:34

标签: linux shell

如何在目录甚至子目录中找到所有零字节文件?

我做到了:

#!/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

但我只得到该目录文件中的结果而不是所有文件 如果任何文件名有空格,那么我只得到第一个单词,然后是tab

任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:138)

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

find "$dir" -size 0

请注意,并非所有find的实现都会默认生成输出,因此您可能需要这样做:

find "$dir" -size 0 -print

答案 1 :(得分:25)

除上述答案外:

如果您想删除这些文件

find $dir -size 0 -type f -delete

答案 2 :(得分:6)

不,你不必打扰grep。

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

答案 3 :(得分:2)

这是搜索大小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.