Localize o caminho que possui um subdiretório específico

1

Considere o caminho em uma estrutura de diretórios / A / B / C / D / A / B / C / E / A / B / O / P

agora se eu quiser listar todo o caminho que tem o subdiretório C, então ele pode ser feito através do grep? Produção esperada: / A / B / C / D / A / B / C / E

Eu tentei usar o grep e encontrar mas não consegui isso

    
por user3059993 04.02.2017 / 02:04

2 respostas

3

Enquanto a resposta do ka3ak funciona, o find vem com um parâmetro "-path" para que você possa simplesmente usar

find . -type d -path "*/c/*"

-path parece também um pouco mais rápido:

[hexathos:~/test] $ time find . -regextype posix-extended -regex ".*/c/.*"
./a/b/c/d
./a/b/c/e

real    0m0,013s
user    0m0,010s
sys 0m0,000s
[hexathos:~/test] $ time find . -type d -path "*/c/*"
./a/b/c/d
./a/b/c/e

real    0m0,012s
user    0m0,007s
sys 0m0,003s
    
por 04.02.2017 / 08:28
0

Você só precisa de find para isso:

find A -type d -regextype posix-extended -regex ".*/C/.*"

Para a seguinte estrutura de diretório

A                                                                                                                                                                                                                  
└── B                                                                                                                                                                                                              
    ├── C                                                                                                                                                                                                          
    │   ├── D                                                                                                                                                                                                      
    │   └── E                                                                                                                                                                                                      
    ├── C1                                                                                                                                                                                                         
    │   └── E                                                                                                                                                                                                      
    └── O
        └── P

retornaria:

A/B/C/E
A/B/C/D
    
por 04.02.2017 / 07:58