find: los mejores ejemplos prácticos para localizar lo que buscas

find

El comando find es uno de los más importantes en el mundo *nix. En Linux se puede usar para localizar todo aquello que necesitas, como directorios y ficheros. Además, es extremadamente poderoso y flexible, ya que admite argumentos y opciones para crear prácticos filtros (fecha, tamaño, tipo, nombre, extensión,…). Incluso puede ser una práctica herramienta para auditar la seguridad de la distro, ya que también podrá localizar ficheros o directorios con permisos inapropiados.

Sin embargo, debido a esa versatilidad y cantidad de opciones, no es de los comandos que más fáciles son de recordar, y muchos usuarios siguen teniendo ciertos problemas. Por eso, aquí verás algunos ejemplos prácticos de los más prácticos para que aprendas a defenderte con find:

  • Buscar un archivo o directorio por su nombre (en el directorio actual, en todos los directorios, y con sensibilidad para distinguir entre minúsculas y mayúsculas):

find . -name "ejemplo.txt"

find / -name "ejemplo.txt"

find . -iname "ejemplo.txt"

  • Buscar un archivo o directorio por su nombre dentro de un directorio concreto:

find /home/usuario/prueba -name "ejemplo.txt"

  • Buscar todos los directorios (puedes usar l para enlaces simbólicos, c para dispositivos de carácter, f para ficheros, y b para dispositivos de bloque) y evitar archivos, o usar también el nombre:

find /home/usuario/prueba -type d
find /home/usuario/prueba -type d -name "ejemplo"

  • Buscar archivos con una extensión particular:

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

  • Buscar archivos por su nombre y eliminarlo:

find . -name "ejemplo.txt" -delete

  • Buscar todos los archivos accedidos más viejos de 10 años, o también puedes hacerlo por fecha de modificación en los últimos 60 min y por fecha de cambios en menos de 1 día:

find / -atime 10
find / -mmin -60
find / -ctime -1

  • Buscar los archivos que sean mayores de 500MB y menores de 1GB:

find / -size +500M -size -1G

  • Buscar los archivos que superan los 10GB y eliminarlos de una sola vez:

find / -size +10G -exec rm -rfv {} \;

  • Buscar los archivos que pertenezcan a un usuario o a un grupo:

find / -user nombre
find / -group nombre

  • Buscar los archivos que tengan unos permisos concretos:

find / -perm 644

  • Buscar los archivos vacíos (si cambias f por d puedes buscar directorios vacíos):

find / -type f -empty

  • Buscar los archivos ocultos (d en vez de f para directorios ocultos):

find / -type f -name ".*"

  • Buscar texto dentro de ficheros:

find / -type f -name "*.txt" -exec grep 'texto-a-buscar' {} \;


El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: AB Internet Networks 2008 SL
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.