17 ejemplos prácticos del comando ‘find’ en GNU Linux

En la entrada vamos a ver diferentes formas de uso del comando find en GNU Linux. Si no lo conoces se trata de un comando que se encarga de realizar búsquedas de ficheros y carpetas, desde la línea de comandos, en un árbol de directorios.

Con esta herramienta podemos realizar búsquedas, utilizando parámetros, en una amplia variedad de condiciones, ya sea encontrar ficheros modificados por fecha, o bien por tamaño, permisos, usuarios, grupos, o tipos de archivo.

Es un comando muy habitual en sistemas UNIX y similares, como es el caso de los sistemas del Ñu y el Pingüino.

Imagen de Greg Montani en Pixabay

17 ejemplos prácticos del comando «find» en GNU Linux

Su sintaxis de uso es:

  1. find [ruta] [parámetros] [valores]

Empecemos con los ejemplos prácticos:

1. Buscar un fichero del que sabemos el nombre y la extensión:

  1. find / -name bitsandlinux.txt

2. Buscar ficheros en una ubicación en particular, por ejemplo, mi home de usuario:

  1. find /home/david -name bitsandlinux.txt

3. Realizar búsquedas ignorando mayúsculas y minúsculas:

  1. find /home/david -iname bitsandlinux.txt

4. Para buscar directorios debemos utilizar el parámetro «type -d«, tal y como se muestra en el ejemplo:

  1. find / -type d -name david

5. Buscar ficheros por extensión:

  1. find / -type f -name *.sh

6. O de la misma manera buscar ficheros ocultos:

  1. find / -type f -name ".*"

7. Búsquedas por permisos, por ejemplo, todos los ficheros que tengan permisos 775:

  1. find / -type f -perm 0775 -print

8. Ahora justo lo contrario, esto es, buscar todos los ficheros que tengan permisos diferentes a 775:

  1. find / -type f ! -perm 775

9. Ya os hablé en su día de los ficheros Sticky Bit, aquí un ejemplo de cómo buscarlos:

  1. find / -perm 1551

10. O bien buscar ficheros que tengan permisos de solo lectura:

  1. find / -perm /u=r

11. También podemos buscar ficheros ejecutables:

  1. find / -perm /a=x

12. Podemos también buscar ficheros o carpetas vacías:

  1. find / -type f -empty
  2. # O en el caso de directorios:
  3. find / -type d -empty

13. Existe la posibilidad también de buscar los ficheros de un único usuarios o grupo:

  1. #En el caso del usuario
  2. find / -user David
  3. #O bien por grupo
  4. find / -group david

14. Una opción muy utilizada por mi parte es la búsqueda de ficheros antiguos. Ficheros por ejemplo con más de 30 días de su última modificación:

  1. find / -type f -mtime +30

15. A esta búsqueda también le podemos añadir que además sean ficheros más grandes en tamaño de 1 Megabyte:

  1. find / -type f -mtime +30 -size +1M

16. Los ficheros resultantes, los podemos comprimir:

  1. find / -type f -mtime +30 -size +1M -exec tar zcvf comprimido.tar.gz {} \;

17. O si ya no nos interesan, directamente borrarlos:

  1. find / -type f -mtime +30 -size +1M -exec rm -rf {} \;
  2. # O bien:
  3. find / -type f -mtime +30 -size +1M -delete

Y esto es todo. La verdad es que la herramienta tiene muchas más posibilidades, pero estas expuestas son las más utilizadas, por lo menos por mí.

No es la primera vez que hablamos de «find» y aquí una muestra:

Excluir carpetas en búsquedas con find en Linux
Copias de seguridad de modificados en GNU Linux con tar y find
Mostrar espacio total de últimos ficheros modificados en Linux
Borrado de ficheros de backup antiguos

Espero que esta entrada os pueda servir en algún momento. Nos vamos leyendo.