如何在目录甚至子目录中找到所有零字节文件?
我做到了:
#!/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
任何人都可以帮助我吗?
答案 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.