Isso deve ser feito.
find . -type d -path '*/build/debug'
Arnês de teste:
$ 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
Eu quero localizar um subdiretório build/debug
dentro de uma pasta
Existe algum comando shell que possa fazer isso?
Isso deve ser feito.
find . -type d -path '*/build/debug'
Arnês de teste:
$ 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
Se você ativar globstar (com shopt -s globstar
), você pode usar um asterisco duplo para curingas recursivas no 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
Estou usando o arquivo aqui apenas para mostrar o que estamos falando, mas você pode usar isso para todos os tipos de coisas.
O caminho do grep
find /your/sub/dir -type d -print0
imprime todos os seus arquivos no console. Agora apenas imprima os que você deseja ver usando grep
find /home/tim/Apps -type d -print0 | grep -FzZ "debug/build"
Execute o comando
find -name 'foldername'
Isto irá encontrar todas as pastas (e arquivos) desse nome e mostrar o caminho para ele.
A pesquisa começa na pasta atual em baixo.
Então, se você não tem idéia de onde está, então cd /
primeiro, para que você esteja na pasta raiz superior. Você também pode querer adicionar sudo
na frente do comando para garantir que a pesquisa verifique a pasta que você não tem permissões também.