En esta guía, aprenderá a buscar archivos en Linux usando el comando de búsqueda en la terminal.
El comando find es una herramienta increíblemente poderosa y flexible que es crucial en la administración de su sistema Linux.
Puede usar la herramienta de búsqueda para buscar archivos y directorios en su sistema usando una expresión específica.
Incluso puede buscar archivos según sus propiedades específicas. Por ejemplo, puede buscar un archivo según sus permisos, propietario o tamaño de archivo.
Aún más interesante, puede usar find en Linux para realizar acciones en cada archivo que coincida con su expresión.
Esta guía lo guiará a través de algunas de las diferentes formas de usar la herramienta de búsqueda en su sistema Linux.
Indice
La sintaxis del comando de búsqueda
Comencemos con un recorrido rápido por la sintaxis del comando find en Linux.
Como puede ver, la sintaxis de la herramienta es relativamente simple. Las dos cosas principales que necesita saber son la ruta y la expresión.
La expresión es una de las partes más importantes porque ayuda a controlar lo que la herramienta de búsqueda encuentra en el directorio especificado.
Una cosa a tener en cuenta es que el orden de su expresión es importante. Por ejemplo, si desea ejecutar un comando, debe ubicarse al final de su expresión. De lo contrario, se activará antes de que ocurra un evento de coincidencia.
Uso básico de find en Linux
El uso más básico del comando de búsqueda es especificar solo el directorio en el que la herramienta debe buscar.
Cuando usa buscar y especifica solo el directorio, enumera todos los archivos y directorios que contiene.
No hay muchos casos de uso para hacer esto, ya que existen mejores alternativas para enumerar todos los archivos en un directorio.
Por ejemplo, el comando de árbol puede listar archivos y carpetas mientras le da una idea de su ubicación.
Ejemplo de uso de Buscar en un directorio
Para mostrarle este comportamiento, permítanos mostrarle lo que sucede cuando usa el comando buscar y especifica solo el directorio.
Para nuestro ejemplo, si quisiéramos buscar un directorio ubicado en «/ home / TecnoPasion / example», usaríamos el siguiente comando.
Al usar esto, será recibido con una lista completa de todos los archivos y carpetas en ese directorio.
Filtrar el tipo de archivo con la búsqueda
Podemos filtrar el tipo de archivo devuelto por el comando de búsqueda.
Para especificar el tipo de archivo a buscar, deberá utilizar la opción «-type» y una letra que designe el tipo de archivo.
Puede usar la lista a continuación para ver los diferentes tipos de archivos que puede especificar y las letras que representan ese tipo.
f – Archivo normal – Directorio l – Enlace simbólico P – Canalización con nombre (FIFO) b – Bloque (con búfer) especial) c – Carácter (sin búfer) especial) s – Enchufe D – Puerta (Solaris)
En esta lista, los dos primeros son los que probablemente usarás más, los que buscan archivos normales (f) y directorios (d).
Buscar archivos solo con Buscar
Para nuestro primer ejemplo, usaremos la opción -type para listar los archivos (f) en nuestro directorio.
Usando esto en nuestro directorio de ejemplo, devolverá todos los archivos que contiene.
Encontrar directorios con Find
Para nuestro segundo ejemplo, intentemos el mismo comando que nuestro último ejemplo, pero en lugar de buscar archivos, buscaremos directorios.
Esto significa que en lugar de usar la letra «f» junto a la opción «-type», usaremos la letra «d».
Esta vez, en lugar de ver todos los archivos ubicados en el directorio de ejemplo, solo verá los directorios.
Buscar archivos en Linux por nombre
La mayoría de la gente usará el comando de búsqueda en Linux para buscar archivos por nombre.
Para hacer esto, necesitará usar la opción «-name» junto al comando de búsqueda para realizar una búsqueda sensible a mayúsculas y minúsculas.
Con la opción de nombre, puede especificar el nombre del archivo que está buscando en su sistema.
A continuación, puede ver la sintaxis básica para usar el comando de búsqueda para buscar archivos según su nombre.
También es posible utilizar find para realizar una búsqueda que no distingue entre mayúsculas y minúsculas. En lugar de usar «-name», usaría la opción «-iname» en su lugar.
Ambos usan exactamente la misma sintaxis. Una opcion es distingue mayúsculas y minúsculas (-nombre), y la otra opción es insensible a mayúsculas y minúsculas (-mi nombre).
La herramienta de búsqueda incluso admite comodines
para que pueda buscar archivos que contengan parte de un nombre de archivo.
Realice una búsqueda sensible a mayúsculas y minúsculas con Buscar
Para nuestro primer ejemplo, realizaremos una búsqueda de nombre de archivo sensible a mayúsculas y minúsculas para un archivo llamado «TecnoPasion.png».
Ya que estamos haciendo una búsqueda sensible a mayúsculas y minúsculas, necesitamos usar la opción «-name».
Al ejecutar este comando, la herramienta de búsqueda buscará en nuestros directorios hasta que encuentre todos los archivos con el nombre «TecnoPasion.png».
Si hay un archivo llamado «PiMyLifeUp.png», el comando de búsqueda no coincidirá porque los casos no coinciden.
Realizar una búsqueda que no distingue entre mayúsculas y minúsculas con Find
Alternativamente, si no le importa si los nombres de archivo coinciden exactamente, es posible realizar una búsqueda que no distinga entre mayúsculas y minúsculas con la herramienta de búsqueda en Linux.
En lugar de usar la opción «-name», usaremos su alternativa, «-iname».
Esta vez buscaremos un archivo llamado «pImYlIFeuP.png».
Usamos mayúsculas y minúsculas porque sabemos por nuestro directorio de ejemplo que ningún archivo tendría este caso exacto.
El comando de búsqueda seguirá encontrando un archivo llamado «TecnoPasion.png» a pesar de que el nombre de archivo que estábamos buscando es «pImYlIFeuP.png».
Usar un carácter comodín para buscar por nombre de archivo
La herramienta de búsqueda en Linux le permite usar comodines
en el nombre del archivo. Esto es especialmente útil si desea buscar archivos por su extensión.
Para este ejemplo, busquemos todos los archivos de nuestro ejemplo que sean «.txt». Para realizar esta búsqueda usaremos el asterisco
seguido de «.txt».
Al ejecutar este comando con nuestros datos de muestra, puede ver que ha encontrado y enumerado todos los archivos con la extensión «.txt».
Usar la búsqueda para buscar por tamaño
Otra capacidad de la herramienta de búsqueda en Linux es buscar archivos según un tamaño específico.
Para especificar un tamaño de archivo, deberá utilizar la opción «-size». Tiene una sintaxis simple y se puede utilizar con otras opciones.
Esta opción es muy fácil de usar e incluso tiene sufijos que puede usar, por lo que no tiene que especificar el tamaño solo en bytes.
b – Bloques de 512 bytes (predeterminado si no se especifica nada) c – Bytesw – Bloques de dos bytes k – Kilobytes M – Megabytes G – Gigabytes
Incluso puede buscar tamaños mayores que (+) o menores que (- su valor especificado utilizando los símbolos menos o positivos delante de su número.
Buscar por tamaño específico
Para usar el comando de búsqueda en Linux para encontrar un archivo con un tamaño específico, solo necesita usar la opción -size seguida del tamaño del archivo.
Para este ejemplo, queremos encontrar un archivo que tenga un tamaño de 22 megabytes. Como estamos usando megabytes, usaremos el sufijo de letra M. Encuentra archivos más grandes que el tamañoUsando el símbolo más (+) como prefijo para el tamaño de su archivo, puede decirle al buscador que busque archivos más grandes al tamaño.
Por ejemplo, si quisiéramos encontrar todos los archivos que sean más grandes que
13 megabytes
, usaríamos el tamaño “+ 13M”. Encuentra archivos más pequeñosDel mismo modo, también hay una función para verificar archivos más pequeños que el tamaño especificado. Para hacer esto, necesitará usar el símbolo menos (-) como prefijo.
Por ejemplo, si queremos usar el comando buscar para buscar todos los archivos menores de
13 megabytes
, reduciríamos el tamaño a «-13M». Encuentra archivos dentro del rango de tamaño Puede combinar varios parámetros de tamaño para encontrar archivos dentro de un rango de tamaño determinado. Por ejemplo, si quisiéramos encontrar todos los archivos entre12 megabytes
y
22 megabytes
, tenemos que usar dos opciones de tamaño.
La primera opción debe ser el tamaño más pequeño que buscamos. Entonces, en nuestro ejemplo, esto se establecerá en «+ 12M».
La segunda opción debe ser el tamaño de archivo más grande que está buscando. Esto significa que, para nuestro ejemplo, configuraremos esta opción en «-22M». Buscar archivos por hora de modificación, acceso o cambio Otra función útil del comando find de Linux es buscar archivos por la fecha en que se modificaron, accedieron o cambiaron por última vez. En Linux, hay tres marcas de tiempo diferentes para cada archivo. Se utilizan para registrar la última vez que alguien realizó una operación en el archivo.
La opción difiere ligeramente según la operación que desee verificar. A continuación, enumeramos las tres opciones y ejemplos de cómo se utilizan.
-atime: esta opción le permite buscar archivos en función de su último acceso.
Un archivo se considera accesible cada vez que se lee su contenido.
-mtime: con esta opción, puede usar buscar para buscar archivos en función de cuándo se modificaron por última vez.
Linux considera que los archivos se modifican después de que se ha cambiado el contenido del archivo.
-ctime: podemos usar esta última opción para buscar archivos en función de cuándo se cambiaron los atributos del archivo.
La hora modificada no debe confundirse con la hora modificada. Un archivo se considera modificado cuando se han modificado los metadatos de ese archivo.
Por ejemplo, cuando cambia los permisos del archivo, se actualizará la marca de tiempo modificada.
Dado que todas estas opciones se utilizan de la misma manera, nos centraremos en el uso de buscar para buscar archivos según su fecha de modificación.
La sintaxis básica de estas opciones es la siguiente. El valor de estas opciones es el número exacto de días ya que este archivo ha sido modificado, cambiado o visto.
Esta opción también admite los operadores menor que (-) y mayor que (+).
Con estos operadores, puede buscar archivos que se modificaron por última vez después o antes de la cantidad de días especificada.
Encontrar archivos cambiados en un día determinado
La forma más sencilla de utilizar las opciones modificadas es especificar el número exacto de días que han pasado desde esta operación.
Por supuesto, necesitará saber cuántos días desde que ocurrió esta acción para que esto funcione.
Por ejemplo, si quisiéramos encontrar un archivo que ha sido modificado Hace 7 días, usaremos la opción “-mtime” junto al número 7.
Después de usar este comando de búsqueda en su sistema Linux, buscará el directorio que especificó, buscando cualquier archivo que tenga una fecha de hace 7 días.
Aunque es fácil de usar, saber exactamente cuándo se ha explotado un archivo no es la tarea más sencilla. Afortunadamente, el comando de búsqueda nos da un poco más de control.
Encuentre el archivo modificado después
Para buscar archivos que han cambiado después del número de días especificado, deberá usar el prefijo del signo más (+).
Por ejemplo, si quisiéramos usar el comando de búsqueda para buscar archivos que cambiaron hace cinco días, usaríamos «+5».
Este comando en Linux buscará la carpeta especificada, encontrando todos los archivos con una marca de tiempo modificada después de hace cinco días.
Encuentra el archivo modificado antes
Asimismo, también puede buscar archivos que hayan sido modificados antes de un cierto número de días utilizando el símbolo menos (-).
Para mostrarle esto, usémoslo para encontrar los archivos creados en el Últimos 4 días. Tenemos que usar el número cuatro, precedido por un símbolo menos como «-4».
Busque el archivo modificado en el rango de días
Con el comando de búsqueda en Linux, puede combinar varias opciones para buscar archivos que han cambiado entre dos fechas diferentes.
Por ejemplo, si quisiéramos encontrar un archivo que se creó hace entre 12 y 30 días, podemos encadenarlos.
Para archivos creados hace más de 12 días, necesitaríamos usar la opción «-mtime +12». Si solo queremos archivos creados antes de hace 30 días, usaremos la opción «-mtime -30».
Buscar archivos por propietario
Usando el comando de búsqueda en su sistema Linux, puede especificar qué usuario o grupo posee los archivos que está buscando.
Para buscar archivos según el usuario que los posee, deberá utilizar la opción «-usuario» seguida del nombre de usuario.
Encontrar un archivo basado en el grupo que lo posee es muy similar. Debe utilizar «-group» seguido del nombre del grupo.
Encuentra archivos según los permisos establecidos
El comando de búsqueda tiene la funcionalidad de buscar archivos para los que se han establecido permisos particulares.
Hay muchos casos en los que esto podría ser muy útil, especialmente cuando se trata de asegurarse de que alguien no haya configurado los permisos de carpeta o archivo en 777.
Para buscar archivos en función de sus permisos definidos, deberá utilizar la opción «-perm», seguida del permiso numérico.
Para brindarle un control más preciso, tiene dos operadores que puede prefijar a su autorización.
El primero es el símbolo de barra (/). El símbolo de barra le dice al comando de búsqueda que solo se debe establecer uno de los tres bits de permiso para que un archivo coincida.
El segundo es el símbolo menos (-). Con el símbolo menos establecido, deben establecerse al menos los bits de permiso especificados.
Por ejemplo, si busca «-111», todos los grupos de permisos deben tener permiso de ejecución para que el archivo coincida.
Ejecute el comando en los archivos encontrados
Una de las características más poderosas del comando de búsqueda en Linux es ejecutar un comando en los archivos encontrados.
Para ejecutar un comando en cada archivo encontrado, necesitamos usar la opción «-exec» seguida del comando que desea ejecutar.
La opción ejecutiva también requiere
Marcador de posición de resultados
Para pasar la ruta completa al comando que está ejecutando, deberá usar dos llaves («{}»).
El comando de búsqueda reemplazará automáticamente estas llaves con la ruta del archivo encontrado. Puede utilizar este marcador de posición tanto como desee en un pedido.
Por ejemplo, si tuviéramos que ejecutar «chmod» en todos los archivos de nuestro directorio, podríamos usar un comando como el siguiente.
En este ejemplo, puede ver que estamos pasando la ruta completa al archivo encontrado usando los dos corchetes.
Delimitadores
La opción de fin de ejecución debe tener un delimitador. El delimitador le dice al comando de búsqueda dónde termina la opción -exec y cómo debe manejar los resultados devueltos.
El comando de búsqueda en Linux tiene dos tipos diferentes de delimitadores que puede usar, ambos con casos de uso ligeramente diferente.
El separador de punto y coma
El primero es el punto y coma (;). La herramienta de búsqueda ejecutará el comando «-exec» en cada archivo que se encuentre por separado al usar el punto y coma.
Este delimitador debe escaparse con una barra inclinada (), para que el intérprete no lo malinterprete.
Por ejemplo, si quisiéramos devolver la ruta de cada archivo encontrado, usaríamos un comando como este.
Puede ver cómo funciona este comando y cómo el comando echo se activa individualmente para cada archivo encontrado.
El delimitador del signo más
El delimitador alternativo que puede usar con el comando de búsqueda en Linux es el símbolo más (+).
Este símbolo le indicará al comando de búsqueda que recopile todos los resultados del comando de búsqueda antes de ejecutar el comando.
Esto significa que el comando de ejecución solo se ejecutará una vez y enviará una lista de los archivos encontrados, con cada nombre de archivo separado por un espacio.
Por ejemplo, intentemos nuestro comando echo nuevamente, pero esta vez usando el delimitador del símbolo más (+).
Puede ver la diferencia de comportamiento entre los dos delimitadores con los resultados de muestra que tenemos a continuación.
Conclusión
Espero que ahora tenga una comprensión sólida de cómo puede usar el comando de búsqueda en su sistema Linux.
El comando de búsqueda es una de las herramientas más poderosas de su arsenal al administrar su dispositivo.
No solo se puede usar para buscar archivos en su sistema, sino que también se puede usar para ejecutar comandos en cada archivo que encuentre.
Por ejemplo, puede utilizarlo como una forma sencilla de corregir permisos para archivos y directorios.
Si tiene problemas con el comando de búsqueda, deje un comentario a continuación.
Asegúrese de consultar algunos de nuestros otros tutoriales de Linux para ver qué más puede hacer en su sistema.