如何在目录甚至子目录中找到所有零字节文件?
我这样做了:
#!/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
Run Code Online (Sandbox Code Playgroud)
但我只得到该目录文件中的结果而不是所有文件,如果任何文件名有空格,那么我只得到第一个单词后跟tab
谁能帮我?
Wil*_*ell 150
要打印大小为0的$ dir中和以下的所有文件的名称:
find "$dir" -size 0
Run Code Online (Sandbox Code Playgroud)
请注意,并非所有实现find都会默认生成输出,因此您可能需要执行以下操作:
find "$dir" -size 0 -print
Run Code Online (Sandbox Code Playgroud)
Lin*_*igi 30
作为上述答案的补充:
如果您想删除这些文件
find $dir -size 0 -type f -delete
Run Code Online (Sandbox Code Playgroud)
Bash 4+ 已测试 - 这是搜索大小 0 的正确方法:
find /path/to/dir -size 0 -type f -name "*.xml"
Run Code Online (Sandbox Code Playgroud)
搜索大小为 0 的多个文件扩展名:
find /path/to/dir -size 0 -type f \( -iname \*.css -o -iname \*.js \)
Run Code Online (Sandbox Code Playgroud)
注意:如果删除 \( ... \),结果将是满足此要求的所有文件,因此忽略大小 0。