Encontre arquivos e diretórios regulares

9

Como posso saber (se posso dizer!) Para encontrar arquivos do diretório e do tipo de arquivo?

find -type fd

É como a idade das trevas heurística aqui em cima.

MageProspero
fonte

Respostas:

12

Aqui está o comando que você pode usar:

find -type f -or -type d
laebshade
fonte
7
Ou find -type f -o -type dpara alternativa compatível com POSIX.
manatwork
Ei, eu tive um pequeno problema com isso quando executo $ find. - tipo d - ou - tipo f - e - nome "visão", não faz exatamente o que eu esperava, estou perdendo outra coisa!
precisa saber é o seguinte
2
-a tem precedência sobre -o, use parênteses (mas escape para o shell). Não é necessário usar o não-padrão ou -e.
Stéphane Chazelas
se eu tentar `encontrar. -type d ou -type f -name 'abc' . I get an error.. find: caminhos devem preceder a expressão: `.. Alguma idéia do porquê?
Alpha_989 1/07
11
@ alpha_989 falta -antes or?
Mateusz Piotrowski
2

tl: dr

usar find . -name "*string*" -type f -o -name "*string*" -type d

explicação

o comando -o oré o argumento após o caminho do arquivo completamente, de modo que find . -name "*string*" -type f -o -type dcalcula find . (-name "*string*" -type f) -o (-type d). Por esse motivo, você deve especificar o

A maioria dos usuários deseja algo que se pareça com

find . -name  "*string*" -type f -o -name "*string*" -type d

que calcula como

find . (-name  "*string*" -type f) -o (-name "*string*" -type d)

encontre detalhes de sintaxe

-name "*string*"procura por nomes que contenham a string stringem qualquer lugar neles.

Ulad Kasach
fonte
1

Se você estiver usando o GNU find, a solução a seguir pode ser sua:

find -type d,f

Veja man findpara mais detalhes:

Para procurar mais de um tipo de uma vez, você pode fornecer a lista combinada de letras de tipo separadas por vírgula ,(extensão GNU).

Mateusz Piotrowski
fonte
2
Usando a GNU findversão 4.7.0 .. Parece não suportar ,. A mensagem de erro diz issofind: Arguments to -type should contain only one letter.
alpha_989