¿Cómo puedo usar el comando find de manera más eficiente?

15

Quería saber, ¿cuál es la mejor manera de usar el comando find de manera eficiente?

Generalmente uso, lo find [filename] [dir]que me da una larga lista de nombres de archivos, ninguno de ellos relacionado con mi búsqueda.

Simplemente necesito encontrar un archivo en un directorio particular. ¿Cuál es el comando para eso?

Sam007
fuente

Respuestas:

24

generalmente le dice a encontrar dónde comenzar la búsqueda y qué buscar. Entonces, la sintaxis de las rutas de búsqueda y lo que realmente está tratando de encontrar es diferente.

Para el caso de uso que menciona, supongamos que desea encontrar el passwdarchivo en /etc:

find /etc/ -name passwd

estás diciendo "comenzando en etc., busca un archivo cuyo nombre seapasswd

si no especifica criterios (u "opciones" en el lenguaje de búsqueda), lo que hace es encontrar, comienza en la ruta (o rutas) que especifique, y encuentra todos los archivos y directorios debajo, de forma recursiva. Entonces, las opciones "filtran" esos archivos para reducir lo que está buscando.

Encuentra todos los archivos JPG en cualquier parte de tu sistema de archivos:

find / -name "*jpg" 

Se recomienda utilizar comillas en sus opciones porque, de lo contrario, la expansión de shell puede causar dolores de cabeza.

Encuentre cualquier archivo pdf, sin importar el caso, en Documentos o Descargas:

find Documents/ Downloads/ -iname "*pdf"

Si lo hace man findy desplácese hacia abajo hasta PRUEBAS, encontrará todos los "criterios" que puede usar para reducir su búsqueda. Puede buscar archivos con nombres de archivo específicos, propiedad de usuarios o grupos específicos, que tengan un permiso de archivo específico, que sean de un tipo específico (por ejemplo -type d, solo encontrarán directorios, mientras -type fque solo encontrarán archivos simples, excluyendo directorios), archivos más nuevos o más antiguos que un número específico de días (o minutos), archivos que están vacíos, que son ejecutables, etc.

En la página de manual de find también encontrará una sección llamada ACTIONS, que puede ir después de los criterios y se activará por cualquier archivo que coincida con todos los criterios. Por lo tanto, puede findhacer cosas como eliminar archivos que encuentra, ejecutar comandos arbitrarios en ellos, etc.

Pero, por supuesto, la sintaxis básica sigue siendo:

find [starting path(s)] [conditions or criteria]
roadmr
fuente
gracias esto funciona muy bien Estaba realmente confundido y esto ayuda a aclarar las cosas
Sam007
1
+1 Esta es una buena introducción para encontrar, y también le enseña al OP cómo encontrar más información.
lgarzo