Experimente find /dir -type d -name "your_dir_name"
.
Substitua /dir
pelo nome do seu diretório e substitua "your_dir_name"
pelo nome que você está procurando.
-type d
dirá find
para procurar apenas diretórios.
Digamos que eu tenha um diretório de nível superior chamado /dir
e muitos subdiretórios. Como faço para pesquisar os subdiretórios de /dir
para encontrar o chamado x/x/dir/x/x/x/target
?
Esta questão é semelhante, mas não exatamente o que estou procurando: find command para determinados subdiretórios .
Não estou procurando arquivos, apenas diretórios com um nome específico.
Para uma solução mais geral de encontrar um ou mais diretórios e procurá-los por algo como encontrar endereços de e-mail antigos em repositórios git, observe o seguinte padrão:
find . -type d -name .git -print0|\
xargs -0r -I {} find {} -type f -print0 |\
xargs -0r grep -e '[email protected]'
echo **/target
ou para obter uma correspondência por linha:
printf %s\n **/target
Isso funciona fora da caixa em zsh. No bash, você precisa executar shopt -s globstar
primeiro e tenha cuidado com o fato de isso também atravessar links simbólicos para diretórios. No ksh93, você precisa executar set -o globstar
primeiro.
Se você quiser corresponder apenas diretórios ou links simbólicos a diretórios, adicione um /
(ou seja, **/target/
) à direita. Em zsh, para corresponder apenas aos diretórios, mas não aos links simbólicos para os diretórios, faça isso **/target(/)
.
Em qualquer shell, você pode usar o comando find
:
find . -name target
No Linux e no Cygwin, o .
é opcional. Se você quiser corresponder apenas diretórios, adicione -type d
.