Comando FIND de Linux con ejemplos

¿Sabes cuántos archivos hay en una instalación nueva de Linux ? Si usa PopOS! Distribución de Linux(Linux distribution) como ejemplo, hay más de 31.000 archivos. Eso es antes de comenzar a crear documentos, almacenar música, descargar archivos PDF(PDFs) u organizar imágenes.

Debido a esto, encontrar el archivo o la carpeta correctos en Linux cuando los necesita se convierte en un desafío. En este artículo, aprenderá a usar el comando FIND de Linux(Linux FIND) y le daremos todos los ejemplos que podamos.

Sintaxis del comando FIND de Linux(Linux FIND Command Syntax)

La sintaxis se refiere a cómo se juntan las palabras o los comandos. Así(Just) como una oración normal puede convertirse en una tontería simplemente mezclando las palabras, los comandos pueden fallar si no se usan con la sintaxis adecuada.

encontrar [ruta] [condiciones] [acciones](find [path] [conditions] [actions])

Esto es lo que eso significa:

find : inicia la utilidad Find en (Find)Linux

camino(path ) - donde mirar

condiciones(conditions ) : argumentos que desea aplicar a la búsqueda

acciones(actions ) : lo que quiere hacer con los resultados

Un ejemplo simple usando los tres se ve así:

encontrar . -nombre archivo-muestra.rtf -imprimir(find . -name file-sample.rtf -print)

Como habrás adivinado, esto encontrará el nombre de archivo file-sample.rtf(file-sample.rtf)

La ruta del punto ( . ) le dice a find que busque en el directorio actual y en cualquier directorio dentro de él. 

La condición -name le dice a find que obtenga el archivo con ese nombre específico.

La acción -print le dice a FIND que muestre los resultados en la pantalla.

El punto y -print son valores predeterminados para el comando de búsqueda. Por lo tanto, seguirá haciendo lo mismo si no los usa. Entonces, find -name file-sample.rtf le dará los mismos resultados.

Linux ENCONTRAR en otro directorio(Linux FIND In Another Directory)

Puede buscar en un directorio diferente de aquel en el que se encuentra. Simplemente(Just) inserte la ruta al directorio después de FIND . Si está en la raíz y sabe que el archivo está en algún lugar del directorio de home/user , usaría:

find home/user -name file-sample.rtf

Sigue siendo una búsqueda recursiva, por lo que pasará por todos los directorios bajo usuario(user) .

Linux FIND Buscar directorios múltiples(Linux FIND Search Multiple Directories)

Si desea buscar en varios directorios a la vez, simplemente enumérelos en el comando, separados por un espacio.

find /lib /var /bin -name file-sample.rtf

Linux FIND sin recursividad o recursividad limitada(Linux FIND with No Recursion or Limiting Recursion)

Si usó el comando FIND anterior en el nivel raíz, buscaría en todos los directorios del sistema. Entonces, si desea ceñirse solo al directorio actual, use la opción -max depth . El número después de -max depth le dice a Find what deep to go before stop. 

Usar -max depth 1 significa solo este directorio. 

encontrar -nombre archivo-muestra.rtf -max depth 1(find -name file-sample.rtf -maxdepth 1)

Usar -max depth 2 o un número mayor significa ir a muchos niveles más profundos.

encontrar -max depth 5 -nombre archivo-muestra.rtf(find -maxdepth 5 -name file-sample.rtf)

Ejemplo de comodín FIND de Linux(Linux FIND Wildcard Example)

El comando FIND usa el asterisco ( (FIND)* ) como comodín. Úselo para cualquier parte del nombre de la que no esté seguro. Se puede utilizar más de una vez en el nombre. Sin el tipo de archivo como parte del nombre del archivo, los resultados también incluirán directorios que coincidan.

find home/user -name file*sample*

Ejemplo de FIND de Linux por tipo(Linux FIND by Type Example)

Para buscar solo un archivo o un directorio, use la opción -type y el descriptor apropiado. Hay algunos, pero los de archivo y directorio son los más comunes:

f-archivo

d-directorio

b – dispositivo de bloque

c – dispositivo de carácter

l - enlace simbólico

s - enchufe

find home/user -name file*sample* -type d

Ejemplo de Linux FIND que no distingue entre mayúsculas y minúsculas(Linux FIND Case Insensitive Example)

A diferencia de Windows , a Linux le importa si una letra es mayúscula o minúscula. Entonces, si desea que busque tanto File-Sample.rtf como file-sample.rtf, use la opción -iname .

find home/user -iname File-Sample.rtf

Linux FIND Ejemplo de varios archivos(Linux FIND Several Files Example)

Supongamos que desea encontrar las versiones .rtf y .html de un archivo. Eso se puede hacer en un comando usando el operador -o (o). (-o)En algunas distribuciones, es posible que deba colocar los nombres entre corchetes, como ( -name file-sample.rtf -o -name file-sample.html)

find home/user -name file-sample.rtf -o -name file-sample.html

Linux ENCONTRAR archivos que no coinciden con un nombre(Linux FIND Files That Don’t Match a Name)

Tal vez sepa que existe la versión .html de un archivo, pero no si hay otras. Puede filtrar la versión .html fuera de la búsqueda usando la opción -not .

find home/user -name file-sample* -not -name *.html

Linux FIND sin resultados de error(Linux FIND Without Error Results)

En el ejemplo de búsqueda sin recursividad, observe que enumeró todos los directorios en los que no pudo buscar y el resultado correcto. Eso es molesto. Evitemos que muestre todos esos directorios " Permiso(Permission) denegado". Combínelo con otro comando de terminal de Linux(Linux terminal command) , grep. También puede utilizar Buscar(Find) con grep para buscar archivos que contengan palabras específicas(find files with specific words in them) .

find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”

Analicemos 2>&1 .

2 : representa stderr , que es la abreviatura de salida de errores estándar. 

1 : representa stdout , que es la abreviatura de salida estándar

> – significa redirigir cualquier salida que esté a su izquierda a lo que esté a su derecha.

& – significa juntar.

Entonces, 2>&1 significa tomar los errores estándar y redirigirlos, y luego juntarlos con la salida estándar en una sola salida.

Ahora echemos un vistazo a | grep -v “Permission denied” .

| (llamado tubería): le dice a Linux que alimente los resultados de lo que sea que esté a su izquierda a lo que sea que esté a su derecha. Se está alimentando al comando grep.

grep : es una utilidad de búsqueda de texto. 

-v : le dice a grep que busque cualquier cosa que no coincida con el texto a la izquierda de -v. En este caso, le está diciendo a grep que solo encuentre cualquier cosa que no contenga el texto o la cadena, " Permiso(Permission) denegado". Entonces, grep solo le mostrará los resultados que está buscando y cualquier error que no coincida con " Permiso(Permission) denegado".

Ejemplo de FIND de Linux por permisos(Linux FIND by Permissions Example)

Para usar esto bien, necesita aprender los permisos de Linux(learn Linux permissions)

Todos los archivos de ejemplo tienen los permisos 664, excepto uno con los permisos 775. Use la opción -perm para encontrarlo.

find Documents/ -name file-sample* -type f -perm 775

Ejemplo de FIND de Linux por tamaño(Linux FIND by Size Example)

Encontrar archivos por tamaño es útil para que esos archivos enormes llenen su disco duro. Utilice la opción -size, el tamaño deseado y uno de los siguientes sufijos. Si no se usa ningún sufijo, -size por defecto es b . Para buscar archivos iguales o mayores que un tamaño determinado, coloque el signo más (+) delante del tamaño.

M – Megabytes

G – Gigabytes

k – Kilobytes

b – bloques (512 bytes – predeterminado)

c-bytes

w – palabras (dos bytes juntos)

find -size +500k

Linux FIND por propietario(Linux FIND by Owner)

Hay dos formas de buscar archivos por propietario. Uno es por el nombre de usuario del propietario y el otro es por el grupo del usuario. Para buscar por nombre de usuario, use la opción -usuario(-user) , seguida del nombre de usuario. Para buscar por grupo de usuarios, use -group seguido del nombre del grupo.

find -user(find -user groupname ) nombre de grupo o find -user nombre de usuario(find -user username)

Archivos FIND de Linux por ejemplo de última modificación(Linux FIND Files by Last Modified Example)

Para buscar archivos que se modificaron o editaron en los últimos X días, use -mtime seguido de un número. Poner un signo menos ( - ) delante del número encontrará algo alterado dentro de tantos días antes de ahora. Un signo más ( + ) significa dentro de tantos días antes de ahora. 

find -name “file-sample*” -mtime +5 (greater than 5 days ago)

find -name “file-sample*” -mtime -5 (less than 5 days ago)

Para buscar por última modificación en minutos, use la opción -mmin seguida de la cantidad de minutos. Use el + y - como arriba.

find -name “file-sample*” -mmin -5

find -name “file-sample*” -mmin +5

Ejemplo de búsqueda de archivos de Linux por última hora de acceso(Linux FIND Files by Last Accessed TIme Example)

La opción que se utiliza para buscar archivos en función de cuándo se abrieron por última vez es -atime para días y -amin para minutos. Sígalo con la cantidad de días o minutos para volver y use los signos + y - como mayor que y menor que.

find -name “file-sample*” -atime -5

find -name “file-sample* -amin -5

Combine FIND con otros comandos de Linux(Combine FIND with Other Linux Commands)

Hay un ejemplo anterior del uso de find con el comando grep, y puede usarlo con muchos otros. Puede ver que el uso de buscar y otros comandos puede ser muy poderoso y un gran ahorro de tiempo. Imagine tener que eliminar un montón de un tipo particular de archivo. En lugar de buscar en el explorador de archivos, simplemente cree el comando correcto y estará listo en segundos. ¿Cómo usará el comando de búsqueda ahora?



About the author

Soy un científico informático con más de 10 años de experiencia trabajando en el campo de los navegadores, Microsoft Office y OneDrive. Me especializo en desarrollo web, investigación de experiencia de usuario y desarrollo de aplicaciones a gran escala. Mis habilidades son utilizadas por algunas de las principales empresas del mundo, incluidas Google, Facebook y Apple.



Related posts