我有目录树,如:
dir11/dir21/dir31......./dirn1
dir12/dir22/dir32......./dirn2
dir13/dir23/dir33......./dirn3
深度不同。是否可以找到文件x.txt中存在长度> 0的存在目录的所有路径?可能需要使用bash脚本吗? 感谢。
答案 0 :(得分:9)
我相信GNU find可以自己匹配所有标准:
$ find /top/dir -not -empty -type f -name x.txt -printf '%h\n'
上面以/top/dir
递归搜索名为-not -empty
的非空(-type f
),常规(x.txt
)文件,并打印导致这些文件的目录({ {1}})。
答案 1 :(得分:3)
可能发现你可以使用:
find /top/dir -type f -name x.txt -size +1b -printf '%h\n'
答案 2 :(得分:2)
find . -type f -name *x.txt -size +1
答案 3 :(得分:1)
你非常需要,是的......
for dir in $(find /the/root/dir -type d); do
if [ ! -f "$dir/x.txt" ]; then
continue
fi
size=$(stat -c %s "$dir/x.txt")
if [ "$size" != "0" ]; then
echo $dir
fi
done