如何定位子目录?

如何定位子目录?

build/debug我想找到文件夹中的子目录

是否有任何 shell 命令可以做到这一点?

答案1

这应该可以。

find . -type d -path '*/build/debug'

测试工具:

$ mkdir -p tester/{1..3}/build/debug
$ find tester -type d -path '*/build/debug'
tester/1/build/debug
tester/2/build/debug
tester/3/build/debug

答案2

如果打开 globstar (使用 shopt -s globstar),您可以在 bash 中使用双星号作为递归通配符。

$ mkdir -p tester/{1..3}/build/debug
$ mkdir -p tester/anotherlevel/{1..3}/build/debug
$ mkdir -p tester/anotherlevel/yetanother/{1..3}/build/debug
$ shopt -s globstar
$ file tester/**/build/debug
tester/1/build/debug:                         directory
tester/2/build/debug:                         directory
tester/3/build/debug:                         directory
tester/anotherlevel/1/build/debug:            directory
tester/anotherlevel/2/build/debug:            directory
tester/anotherlevel/3/build/debug:            directory
tester/anotherlevel/yetanother/1/build/debug: directory
tester/anotherlevel/yetanother/2/build/debug: directory
tester/anotherlevel/yetanother/3/build/debug: directory

我在这里使用文件只是为了展示我们正在谈论的内容,但您可以将它用于各种事情。

答案3

grep 方式

find /your/sub/dir -type d -print0 

将所有文件打印到控制台。现在使用 grep 只输出您想要查看的文件

find /home/tim/Apps -type d -print0 | grep -FzZ "debug/build"

答案4

执行命令

find -name 'foldername'

这将找到该名称的所有文件夹(和文件)并显示其路径。搜索从您当前所在的文件夹开始向下。因此,如果您不知道它在哪里,cd /请先找到位于根目录的顶级文件夹。您可能还想sudo在命令前面添加,以确保搜索检查您没有权限的文件夹。

相关内容