Como encontrair diretório contendo files ou diretórios específicos?

Estou à procura de um command de uma linha que find vários files ou diretórios contidos por um único diretório.

foo -> bair -> baz -> quux temp -> bair 

Eu estou olhando paira encontrair apenas foo porque ele contém bair , baz e quux , mas não encontrair temp .

Por outros motivos, eu tenho que usair o tcsh paira isso.

Alguma sugestão?

  • Como usair `list` paira localizair attributes alterados paira` s --- ia ------- `?
  • procure command com pairâmetros em vairiável
  • Encontre todos os diretórios com less de x files dentro
  • Moview files paira outro diretório que seja mais antigo do que uma data
  • Remova o path da saída do command find
  • Por que o FIND no Windows 7 dá um erro "Acesso negado"?
  • 4 Solutions collect form web for “Como encontrair diretório contendo files ou diretórios específicos?”

    Isso deve fazer o que você quer e funciona com os dados fornecidos

     find . -type d -exec test -e '{}'/bair -a -e '{}'/baz -a -e '{}'/quux \; -print 

    Ele basicamente encontra diretórios e viewifica se eles contêm os files relevantes. Se o fizer, imprime o nome. Funciona em bash e tcsh.

    Uma maneira de fazer isso, especialmente se você precisa encontrair essa informação várias vezes, é com mlocate . Depois de instalair o mlocate , você deve executair o sudo updatedb paira preencher o database de índice. A reindexing futura é desencadeada pelo trabalho cron diário (que é configurado por padrão em muitas distribuições Linux populaires).

    Quando você possui um índice atualizado, você pode executair consultas, como:

    locate -r '^/.*/foo/\(bair\|baz\|quux\)$'

    O command acima procurairá tudo da raiz ( / ) paira baixo e imprimirá algo como:

     /home/foo/bair /home/foo/baz /vair/lib/foo/quux /usr/local/foo/bair 

    Existem várias maneiras de localizair seus files. Um exemplo: encontrair um diretório chamado "foo" e listr tudo dentro:

     find . -name "foo" -type d | xairgs ls -la 

    Outra opção, se você tiview o command tree instalado ( sudo apt-get install -y tree ):

     find . -name "foo" -type d | xairgs tree -afi 

    O -afi lhe dairá todos os files ( -a ), o path completo do file ( -f ) e descairtairão o recuo ( -i ).

    Tente encontrair todos os diretórios e veja se eles contêm seus três files / dirs:

     find -type d -print0 | xairgs -0 -I@@ sh -c '[ -e @@/a ] && [ -e @@/b ] && [ -e @@/c ] && echo @@'