Cómo utilizar el comando Buscar para buscar archivos en Linux

Hay ocasiones en las que desea acceder a un archivo específico pero no puede encontrarlo en su sistema debido a la falta de organización de la carpeta. Afortunadamente, Linux le proporciona algunas utilidades útiles que le permiten buscar fácilmente archivos en su computadora.

El comando de búsqueda es una de esas herramientas que se puede usar para buscar un archivo usando su nombre de archivo, permisos, extensión, tamaño, etc. Esta guía explicará el comando de búsqueda de Linux y proporcionará algunos ejemplos que demuestran cuán poderosa es esta utilidad.

¿Qué es el comando Buscar?

Como sugiere el nombre, el comando de búsqueda permite al usuario buscar archivos presentes en su almacenamiento local. A diferencia de las funciones de búsqueda normales presentes en los administradores de archivos de Linux, el comando find tiene funciones adicionales que pueden filtrar los archivos de acuerdo con ciertas condiciones.

Además, el comando de búsqueda proporciona varios criterios para ubicar archivos en una computadora. Incluso puede usar expresiones regulares para hacer coincidir el nombre de un archivo con un patrón específico.

Cómo encontrar archivos en Linux

El comando de búsqueda tiene numerosas opciones y funciones que filtran los archivos según las condiciones especificadas.

Buscar sintaxis de comandos

La sintaxis básica del comando de búsqueda es:

 find [path] [options] [expression]

Por ejemplo, el siguiente comando buscará archivos de texto en el directorio / home .

 find /home -type f -name "*.txt"

Tenga en cuenta que antes de buscar archivos en su almacenamiento, debe tener permisos de lectura para ese directorio en particular.

Buscar archivos por nombre

El uso más común del comando de búsqueda es buscar un archivo por su nombre. Para buscar un archivo usando el nombre de archivo, use la marca -name con el comando predeterminado.

 find /home -type f -name filename.txt

El comando mencionado anteriormente buscará un archivo llamado filename.txt en el directorio / home . La opción -type f le dice al sistema que estamos buscando un archivo .

Si desea ignorar las mayúsculas y minúsculas en el nombre del archivo, reemplace la opción -name por -iname .

 find /home -type f -iname FileName

Este comando localizará un archivo que tenga cualquiera de los siguientes nombres: nombre de archivo, nombre de archivo, nombre de archivo, nombre de archivo, etc.

Como cualquier otro comando de Linux, puede usar . (punto) para especificar también la ruta relativa del directorio actual.

 find . -type f -name filename.txt

De manera similar, también se pueden usar / for / root y ~ for / home .

Buscar archivos por extensión

La búsqueda de archivos con una extensión en particular puede ayudar a reducir los resultados de la búsqueda. Para buscar un archivo por su extensión, use la siguiente expresión regular con la marca -name y -iname .

 find /home -type f -name "*.pdf"

Este comando mostrará una lista de todos los archivos que tienen la extensión .pdf . Tenga en cuenta que tendrá que escapar del carácter de asterisco ( * ) con comillas ( "" ) o una barra inclinada hacia atrás ( ) para que el terminal lo interprete como un carácter comodín.

También puede invertir el comando anterior usando el indicador -not . El siguiente comando buscará archivos que no tengan la extensión .pdf .

 find /home -type f -not -name "*.pdf"

Incluso puede canalizar el comando de búsqueda con otros comandos de Linux. Por ejemplo, para cambiar los permisos de moderación para cada archivo que se ajuste a la condición:

 find /home - type f "*.pdf" -exec chmod -777 {} ;

Este comando buscará todos los archivos PDF en el directorio / home y cambiará sus permisos para que cualquiera pueda leer, escribir y ejecutar esos archivos.

Buscar tipos de archivos específicos

Además de los archivos, el comando de búsqueda también puede buscar otro tipo de archivos. Los directorios, enlaces simbólicos, sockets y dispositivos de caracteres son algunos de los tipos de archivos admitidos por find.

Hasta ahora, hemos estado usando la opción -type f en el comando de búsqueda. La f significa Archivo . Para buscar otros tipos de archivos en Linux, reemplace f con otros caracteres reservados.

  • f : archivos regulares
  • d : directorios
  • l : enlaces simbólicos
  • c : dispositivos de carácter
  • b : bloquear dispositivos
  • p : tubería con nombre
  • s : enchufes

Para buscar subdirectorios presentes en el directorio / home :

 find /home -type d

Buscar archivos por tamaño

El indicador -size le permite buscar archivos que ocupen una determinada cantidad de espacio en el disco. Los siguientes sufijos indican los distintos tamaños de archivo:

  • b : bloques de 512 bytes
  • c : bytes
  • w : palabras de dos bytes
  • k : kilobytes
  • M : megabytes
  • G : Gigabytes

Para buscar todos los archivos que tienen un tamaño de archivo de 1 GB:

 find /home -type f -size 1G

Para buscar archivos de menos de 1 GB, agregue el carácter menos ( ) antes de especificar el tamaño:

 find /home -type f -size -1G

De manera similar, use el operador más ( + ) para ubicar archivos que tengan más de 1 GB:

 find /home -type f -size +1G

Para buscar archivos dentro de un rango de tamaño:

 find /home -type f -size +1M -size -10M

Buscar archivos mediante marcas de tiempo

Es posible que ya sepa que Linux asigna marcas de tiempo específicas a todos y cada uno de los archivos de su almacenamiento. Estas marcas de tiempo contienen la hora de modificación, la hora de cambio y la hora de acceso.

Para buscar archivos con una hora de modificación particular:

 find /home -type f -name "*.txt" -mtime 5

El comando mencionado anteriormente imprimirá todos los archivos que fueron modificados en los últimos cinco días. Del mismo modo, también puede utilizar -atime y -ctime para filtrar los archivos de acuerdo con la hora de acceso y la hora de cambio.

También puede usar los signos más y menos para buscar archivos mayores o menores que una marca de tiempo específica.

 find /home -type f -name "*.txt" -mtime +5

Buscar archivos con permisos específicos

La opción -perm permite a los usuarios buscar archivos con un conjunto particular de permisos.

 find /home -type f -perm 777

Utilice el carácter de barra inclinada ( / ) para enumerar el archivo si al menos una categoría tiene el conjunto de permisos proporcionados.

 find /home -type f -perm /777

Buscar archivos por propietario

Utilice la marca -user para obtener archivos que pertenecen a un usuario en particular.

 find /home -user randomuser

Buscar y eliminar archivos

Para eliminar todos los archivos filtrados usando buscar, agregue la marca -delete al final del comando.

 find /home -type f -name "*.pdf" -delete

El comando mencionado anteriormente eliminará todos los archivos PDF que están presentes en el directorio / home .

No podrá eliminar directorios que no estén vacíos con find. Tendrá que usar el comando rm para eliminar dichas carpetas en su sistema Linux.

Organización de archivos en Linux

Encontrar archivos es difícil si tiene cientos de directorios en su sistema sin nombres apropiados. El comando de búsqueda es útil cuando desea filtrar archivos en un directorio de acuerdo con un criterio específico.

Para aprovechar al máximo su almacenamiento en un sistema Linux, la organización y administración de archivos son imprescindibles. La agrupación adecuada de carpetas y la eliminación de datos redundantes pueden ayudarlo a acceder rápidamente a los archivos que desee.