Cómo encontrar un archivo usando el comando find en Linux

La mejor manera de buscar archivos en Linux aún sigue requiriendo una Shell, a pesar de la popularidad de los administradores de ventanas que ofrecen interfaces gráficas de usuario.

Cómo encontrar un archivo 

Para buscar archivos es sabido que se debe usar la línea de comandos de Linux, y que primero necesitará abrir una ventana de terminal.

Hay muchas maneras de abrir una ventana de terminal. Una forma que seguramente funcionará en la mayoría de los sistemas Linux es presionar Ctrl+Alt+T.

La manera más fácil de encontrar un archivo

El comando utilizado para buscar archivos se llama find.

Aquí está la sintaxis básica del comando find:

find

El punto de partida es la carpeta desde la que desea iniciar la búsqueda. Para empezar a buscar en toda la unidad, escriba lo siguiente:

find /

Sin embargo, si desea empezar a buscar la carpeta en la que se encuentra actualmente, puede utilizar la siguiente sintaxis:

find .
comando find

Cuando busque por nombre en toda la unidad, utilice la siguiente sintaxis:

find / -name nombre_del_archivo
  • La primera parte del comando find es obviamente la palabra find.
  • La segunda parte es donde empezar a buscar.
  • La siguiente parte es una expresión que determina lo que hay que encontrar.
  • Finalmente la última parte es el nombre de la cosa a encontrar.

Búsqueda de atajos de ubicación

El primer argumento después de find es la ubicación que desea buscar. Aunque puede especificar un directorio específico, la mayoría de las personas utilizan un metacaracter para servir como sustituto. Los tres metacaracteres que trabajan con este comando incluyen:

  • Periodo: especifica la carpeta actual y todas las carpetas anidadas.
  • Barra oblicua: especifica el sistema de archivos completo
  • Tilde: especifica el directorio raíz del usuario activo
Consejo: Buscar en todo el sistema de ficheros es probable que genere muchos errores de acceso denegado. Ejecute el comando con privilegios elevados (por ejemplo, usando sudo), si necesita buscar en lugares a los que su cuenta estándar normalmente no tiene acceso.

Expresiones

La expresión más común que usará es -name. La expresión -name permite buscar el nombre de un archivo o carpeta.

Sin embargo, hay otras expresiones que puede utilizar:

  • -amin n: el archivo fue accedido por última vez hace n minutos
  • -anewer: el archivo fue accedido por última vez más recientemente que fue modificado
  • -atime n: el archivo fue accedido por última vez hace más n días
  • -cmin n: el archivo se modificó por última vez hace n minutos
  • -cnewer: el archivo se modificó por última vez más recientemente que el archivo se modificó
  • -ctime n: el archivo se modificó por última vez hace más de n días
  • -empty: el archivo está vacío
  • -executable: el archivo es ejecutable
  • - false: siempre falso
  • -fstype type: el archivo está en el sistema de archivos especificado
  • -gid n: el archivo pertenece al grupo con el ID n
  • -grup groupname: el archivo pertenece al grupo nombrado
  • -ilname pattern: busca una línea simbólica pero ignora el caso
  • -iname pattern: buscar un archivo pero ignorar el caso
  • -inum n: busca un archivo con el nodo especificado
  • -ipath path: busca una ruta pero ignora el caso
  • -iregex expression: busca una expresión pero ignora el caso
  • -links n: busca un archivo con el número especificado de enlaces
  • -lname name: busca un enlace simbólico
  • -mmin n: los datos del archivo se modificaron por última vez hace n minutos
  • -mtime n: los datos del archivo se modificaron por última vez hace n días
  • -name name: busca un archivo con el nombre especificado
  • -newer name: busca un archivo editado más recientemente que el archivo dado
  • -nogroup: busca un archivo sin identificación de grupo
  • -nouser: busca un archivo sin usuario adjunto
  • -path path: busca una ruta
  • - readable: encuentra archivos que son legibles
  • -regex pattern: busca archivos que coincidan con una expresión regular
  • -type type: busca un tipo particular
  • -id uid: la identificación de usuario numérica de los archivos es la misma que uid
  • -user name: el archivo es propiedad del usuario especificado
  • -writable: busca archivos en los que se pueda escribir

Ejemplo de uso del comando find

Cómo encontrar los archivos de hace más de un cierto número de días

Para encontrar todos los archivos dentro de su carpeta de inicio a los que se accedió hace más de 100 días:

find ~ -atime 100

Cómo encontrar archivos y carpetas vacías

Para encontrar todos los archivos y carpetas vacías de su sistema:

find / -empty

Cómo encontrar todos los archivos ejecutables

Para encontrar todos los archivos ejecutables de su ordenador:

find / -exec

Cómo encontrar todos los archivos legibles

Para encontrar todos los archivos que son legibles:

find / -read

Patrones

Cuando busque un archivo, puede utilizar patrones. Por ejemplo, busque todos los archivos con la extensión mp3:

comando find linux
find / -name *.mp3

Cómo enviar la salida del comando find a un archivo

El principal problema con el comando find es que a veces puede devolver demasiados resultados los cuales "humanamente"no se pueden ver todos de una sola vez. Conecte la salida al comando tail o puede enviar las líneas a un archivo de la siguiente manera:

find / -name *.mp3 -fprint nombre_del_archivo_a_imprimir

Cómo encontrar y ejecutar un comando contra un archivo

Para buscar y editar un archivo al mismo tiempo:

find / -name nombre_del_archivo -exec nano '{}' \;

El comando anterior busca un archivo llamado nombre de archivo y luego ejecuta el editor nano para el archivo que encuentra.