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.

8 Respuestas

  1. 01x01 dice:

    el post anterior estuvo bien para quien es usario del comun, y quiera hacer busquedas dentro de un sistema.
    pero este es genial para quien realmente quiera ir mas alla del simple uso de un sistema.
    para quien lo desea controlar y administrar bien!!
    el comando find el super buscador en GNU/linux GNU/bsd

  2. Fidel Silva dice:

    Saludos..gracias por compartir conocimientos valioso en la adminstracion de linux, me fue útil en la preparación del examen LPIC.

  3. Manson dice:

    GEnial aporte. Con muchos ejemplos didácticos.
    Gracias!!

  4. Brago dice:

    ami me sale mensaje de «find: paths must precede expression: empty» para buscar directorios vacios y para buscar directorios normales, de hecho queria buscar directorios que tiene subfijos despues de _, osea tipo aso > find . -type d *directorio_ para que me muestre todos los directorios con _ pero dice que no hay y sale el mensaje que comente antes, o sea que no me busca directorios a menos que ponga el nombre completo del directorio , pero en dado caso no tendria caso usarlo

  5. Alejo dice:

    Si alguien me puede ayudar, hago el comando find pero este busca en toda la ruta y si hay subcarpeta dentro tambien, pues necesito que solo haga la busqueda en la ruta que le indico y que no entre a ninguna subcarpeta, eh intentado pero no me resulta.

Deja un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.