Simplemente te estás perdiendo el predicado que dice lo que estás buscando (p -name
. Ej .)
Para buscar en el directorio de inicio por nombre:
find ~ -name \*.pdf
Tenga en cuenta que el comodín *
debe escaparse para que el shell no lo interprete antes de que find lo tenga en sus manos. Usando '*.pdf'
y "*.pdf"
tendrá el mismo efecto que \*.pdf
.
Para encontrar mayúsculas y minúsculas:
find ~ -iname \*.pdf
Para podar los resultados solo en archivos (la expresión de nombre probablemente se encargará de esto por usted, pero en caso de que tenga directorios con nombres extraños):
find ~ -type f -iname \*.pdf
Para asegurarse de que find sigue enlaces simbólicos (generalmente quiero hacer esto yo mismo cuando hago búsquedas):
find ~ -follow -type f -iname \*.pdf
Para hacer algo con los archivos que encontró: puede volcar esto en un archivo utilizando la redirección stdout (por ejemplo, agregar > filename
al final), o usar la -exec
opción para ejecutar un comando (consulte la página del manual para más detalles). Sin embargo, este último ejecuta un comando en cada archivo a la vez. a menudo es más rápido dejar que el xargs
comando pase sus archivos encontrados como argumentos a otro comando, todo a la vez o grandes fragmentos a la vez. Por ejemplo, para greps ad-hoc (pero no indexados) a través de archivos de encabezado:
find ~ -follow -type f -name \*.h | xargs grep -nH "identifier"
Y una extensión final, para que ese último comando funcione correctamente si tiene archivos y directorios con espacios en ellos:
find ~ -follow -type f -name \*.h -print0 | xargs -0 grep -nH "identifier"
find
está lejos de ser inútil.