如何找到嵌套目录?

时间:2011-12-22 12:52:11

标签: linux file bash path

我有目录树,如:

dir11/dir21/dir31......./dirn1
dir12/dir22/dir32......./dirn2
dir13/dir23/dir33......./dirn3

深度不同。是否可以找到文件x.txt中存在长度> 0的存在目录的所有路径?可能需要使用bash脚本吗? 感谢。

4 个答案:

答案 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