Encuentra archivos y directorios regulares

9

¿Cómo puedo decir (si puedo decirlo) encontrar para encontrar archivos tanto del directorio como del tipo de archivo?

find -type fd

Es como la heurística edad oscura aquí arriba.

MagoProspero
fuente

Respuestas:

12

Aquí está el comando que puedes usar:

find -type f -or -type d
sombreador
fuente
77
O find -type f -o -type dpara la alternativa compatible con POSIX.
manatwork el
Oye, me encontré con un pequeño problema con esto cuando ejecuté $ find. -type d -o -type f -and -iname "vision" no hace exactamente lo que esperaba, ¡me estoy perdiendo algo más!
MageProspero
2
-a tiene prioridad sobre -o, usa paréntesis (pero escapa de ellos para el shell). No es necesario utilizar el no estándar -o o -and.
Stéphane Chazelas
si trato de 'encontrar. -type d o -type f -name 'abc' . I get an error.. find: las rutas deben preceder a la expresión: `.. ¿Alguna idea de por qué?
alpha_989
1
@ alpha_989 falta -antes or?
Mateusz Piotrowski
2

tl: dr

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

explicación

el comando -o ors los argumentos después de la ruta del archivo por completo, de modo que se find . -name "*string*" -type f -o -type dcalcula find . (-name "*string*" -type f) -o (-type d). Por este motivo, debe especificar el

La mayoría de los usuarios querrán algo parecido a

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

que se calcula como

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

encontrar detalles de sintaxis

-name "*string*"busca nombres que contengan la cadena stringen cualquier parte de ellos.

Ulad Kasach
fuente
1

Si está utilizando GNU find, la siguiente solución podría ser adecuada para usted:

find -type d,f

Ver man findpara más detalles:

Para buscar más de un tipo a la vez, puede proporcionar la lista combinada de letras de tipo separadas por una coma ,(extensión GNU).

Mateusz Piotrowski
fuente
2
Usando la GNU findversión 4.7.0 .. Parece que no es compatible ,. El mensaje de error dice quefind: Arguments to -type should contain only one letter.
alpha_989