Listar diretórios sem uma pasta específica

3

Preciso de ajuda para construir uma listagem de diretórios usando 'find'?

Um exemplo de estrutura de diretório é semelhante a isto:

/ (root)
 - /foo
   - /folderA
   - /folderB
 - /bar
   - /folderA
     -/search
   - /folderB

O que eu quero encontrar é uma lista de diretórios 'folderA' ou 'folderB' que NÃO possuem uma pasta 'search'. A saída solicitada seria:

/foo/folderA
/foo/folderB
/bar/folderB

Eu estou supondo que isso pode ser feito com 'find' em um sistema * nix, mas estou bem verde com o comando. Toda ajuda é apreciada.

RESOLVIDO: Obrigado Khaled por sua resposta levando-me na direção certa. Precisamos de uma pequena modificação para incluir a opção -E, mas a solução final ficou assim:

find -E . -regex '.*(folderA|folderB)' -type d '!' -exec test -d '{}/search' ';' -print

    
por DTest 15.12.2010 / 17:22

1 resposta

4

Você pode encontrar o comando como:

$ find . -regex ".*folder\(A\|B\)" -type d '!' -exec test -d '{}/search' ';' -print
    
por 15.12.2010 / 17:58