Cómo encontrar un archivo por nombre en Linux

Encuentre sus archivos sin esfuerzo desde la línea de comandos en Linux

Los usuarios generalmente intentan encontrar un archivo usando la GUI. Sin embargo, a veces se convierte en un trabajo muy tedioso encontrar un archivo individual en la enorme pila de archivos de su sistema. Encontrarlo de manera convencional puede ser una tarea que requiera mucho tiempo. Para facilitar esta tarea, Linux ofrece ciertos comandos para hacer este trabajo por usted.

encontrar es un comando popular utilizado en los sistemas Linux que puede ayudarlo a buscar varios archivos según sus nombres, tipo, extensión, permisos, propietario, etc.

En este tutorial, nos centraremos en buscar los archivos por nombre. Veremos los diferentes argumentos que se pueden utilizar con el encontrar mando. También aprenderemos sobre el localizar comando que también es una forma más rápida de buscar los archivos por nombre.

Sintaxis para encontrar mando

Utilizando el encontrar comando de una manera adecuada puede facilitar su tarea. Será posible encontrar los archivos de un tipo o extensión en particular o buscar por el nombre si comprende bien la sintaxis general de este comando.

La sintaxis general de la encontrar comando es el siguiente.

buscar [ruta_búsqueda] [expresión] [opciones] [buscar_qué]

He intentado simplificar la sintaxis del encontrar comando para entender mejor el comando.

Observemos cada atributo de la sintaxis para tener una idea del significado de cada uno de ellos.

Search_Path: Aquí viene la ruta donde especificamos la ruta desde donde deseamos que el sistema comience a buscar el archivo. En resumen, se especifica el directorio de inicio para iniciar la búsqueda.

Expresión: Puede especificar los patrones de búsqueda para el archivo en particular que está buscando.

Opciones: Puede utilizar las opciones disponibles que se utilizan con el encontrar comando en este espacio.

encontrar que: En este atributo, ingrese el nombre o parte del nombre del archivo a buscar.

Ilustremos este comando con un ejemplo.

buscar / inicio / gaurav / espacio de trabajo -nombre "fuente.c"

En este comando, estoy usando el encontrar comando para buscar un archivo "fuente.c". He solicitado específicamente buscar en la ruta "/ home / gaurav / workspace". Utilizando el -nombre La opción me permite buscar el archivo especificado por "source.c".

Ésta es la demostración más sencilla de utilizar el encontrar mando.

Buscando archivos en el directorio actual

Utilizando el encontrar El comando en su forma más simple es buscar sus archivos en su directorio de trabajo actual.

encontrar .

Este comando mostrará todos los archivos en su directorio de trabajo actual. Aquí el '."Significa el" directorio de trabajo actual ". A continuación se muestra el resultado de mi directorio de trabajo actual. Todos los archivos presentes en este directorio se enumeran sin ningún filtro

Producción:

. ./context_log.policy ./snap ./snap/couchdb ./snap/couchdb/current ./snap/eclipse ./snap/eclipse/current ./snap/vim-editor ./snap/vim-editor/current ./ snap / vim-editor / common ./snap/vim-editor/1 ./snap/htop ./snap/htop/current ./snap/htop/common ./snap/htop/common/.local ./snap/htop /common/.local/lib ./snap/htop/common/.local/lib/locale ./snap/htop/common/.local/lib/locale/en_IN.UTF-8 ./snap/htop/common/. local / lib / locale / en_IN.UTF-8 / LC_CTYPE

Para buscar un archivo cuyo nombre aproximado sea conocido, utilice el encontrar comando como se muestra a continuación.

encontrar . -nombre [string_from_filename \ *]

Ejemplo:

encontrar . -nombre contexto \ *

Este comando busca los archivos que contienen la cadena "contexto".

Producción:

./context_log.policy ./context.xml ./context_preview.c

Se enumeran todos los archivos del directorio actual que contiene la cadena "contexto".

Ahora, el problema surge con este comando cuando intenta tomarse la libertad de distinguir entre mayúsculas y minúsculas mientras escribe el nombre del archivo o la cadena aproximada.

Linux es bastante cauteloso con la distinción entre mayúsculas y minúsculas y, por lo tanto, existe una buena posibilidad de que su búsqueda falle. No obtendré salida para el comando de búsqueda si uso la cadena como "CONTEXTO" en lugar de "contexto". Incluso si una sola letra en el nombre del archivo está en un caso diferente al del nombre del archivo original, la búsqueda fallará.

Pero no hay necesidad de preocuparse por eso. Simplemente puede reemplazar el -nombre opción con la -iname. Esto le permite buscar los archivos independientemente de los casos en los que se encuentre su nombre. Simplemente haga este simple cambio en su comando y estará bien.

encontrar . -nombre CONT \ *

La salida será la misma, incluso si he usado la cadena en mayúsculas.

./context_log.policy ./context.xml ./context_preview.c

Buscando archivos en diferentes directorios

Puede buscar fácilmente los archivos en cualquier directorio del sistema Linux, independientemente del directorio en el que esté trabajando actualmente.

buscar [ruta_directorio] -iname [nombre_archivo_específico]

Ejemplo:

buscar / home / gaurav / tomcat -iname ath.html

Aquí, he buscado un archivo específico "ath.html" y no archivos similares a esta cadena. Entonces, la salida será solo el archivo específico como se mencionó anteriormente.

/home/gaurav/tomcat/ath.html

Ahora, suponga que no conocemos el nombre de archivo completo, sino solo la cadena de este nombre de archivo. Entonces podemos buscar los archivos de la siguiente manera.

buscar / inicio / gaurav / tomcat -iname ath \ *

Este comando buscará todos los archivos que incluyan la cadena "ath" al principio. He usado el -iname opción aquí, por lo que no tengo que preocuparme por la distinción entre mayúsculas y minúsculas.

Producción:

/home/gaurav/tomcat/ATHENIAN_ART.html /home/gaurav/tomcat/ath_things.html /home/gaurav/tomcat/ath.html /home/gaurav/tomcat/ATHENIAN_ART.pdf /home/gaurav/tomcat/ATHHHHhow.html

También puede usar el comando para buscar varios archivos que terminen con una extensión similar en su nombre.

Ejemplo:

buscar / home / gaurav / tomcat -iname "* .c"

El comando buscará todos los archivos en el directorio especificado que contiene .c como extensión en su nombre de archivo.

Producción:

/home/gaurav/tomcat/stiil.c /home/gaurav/tomcat/project/temp.c /home/gaurav/tomcat/copy.c /home/gaurav/tomcat/gy.c

Aprendimos sobre el encontrar comando para buscar los archivos especificados por el nombre de archivo. Ahora, exploremos un comando más que es más rápido que el convencional. encontrar mando.

localizar descripción general del comando

Hay un comando más para buscar los archivos en su sistema que es más rápido que el encontrar mando. Es el localizar mando. Este comando no viene preinstalado en las distribuciones de Linux. Puede utilizar los siguientes pasos para descargar e instalar el localizar paquete de comandos en su sistema.

Para sistemas Ubuntu y Debian, usar:

sudo apt update sudo apt install mlocate

Para sistemas Cent Os y Fedora, usar:

sudo yum instalar mlocate

El comando de localización busca el archivo de acuerdo con el patrón dado en la entrada. localizar utiliza el archivo de base de datos para buscar los archivos, este archivo de base de datos es generado por el actualizadob mando.

sudo updatedb

El tiempo necesario para actualizar este archivo de base de datos puede variar de un usuario a otro dependiendo de los archivos de su sistema.

Utilizando el localizar mando

Puedes usar el localizar comando de la siguiente manera. Asegúrese de actualizar su archivo de base de datos usando el comando sudo updatedb.

Sintaxis:

localizar [nombre_archivo_o_parte_del_nombre_archivo]

Este comando iniciará la búsqueda desde el directorio raíz. Devolverá la lista de todos los archivos en el sistema que contiene el nombre del archivo o una parte del nombre del archivo como se especifica en el comando.

Ejemplo:

localizar copy.c

Producción:

/home/gaurav/Downloads/git-2.23.0/copy.c /snap/core/9804/usr/lib/python3.5/__pycache__/copy.cpython-35.pyc / snap / core / 9993 / usr / lib /python3.5/__pycache__/copy.cpython-35.pyc /snap/core18/1880/usr/lib/python3.6/__pycache__/copy.cpython-36.pyc / snap / core18 / 1885 / usr / lib / python3 .6 / __ pycache __ / copy.cpython-36.pyc /snap/core20/634/usr/lib/python3.8/__pycache__/copy.cpython-38.pyc /usr/lib/python3.5/__pycache__/copy.cpython -35.pyc /usr/lib/python3.6/__pycache__/copy.cpython-36.pyc /usr/share/icons/MacBuntu-OS/apps/128/copy.com.png

La línea resaltada muestra que se encuentra el archivo exacto "copy.c". Junto con este resultado, también se muestran otros archivos que contienen "copy.c" como parte de su nombre de archivo.

Para evitar el desorden de otros archivos no deseados y solo encontrar el archivo deseado, puede usar el comando de localización de la siguiente manera.

localizar -b '\ nombre de archivo'

Ejemplo:

localizar -b '\ copy.c'

Producción:

/home/gaurav/Downloads/git-2.23.0/copy.c

El archivo específico mencionado en los criterios de búsqueda se enumera junto con la ruta del directorio donde se encuentra.

Utilizando el localizar El comando puede parecer un poco complicado, pero es un método más rápido para buscar archivos cuando no conoce la ubicación exacta de ese archivo. La recuperación de los archivos se vuelve súper rápida cuando ha actualizado el archivo de la base de datos que usa el comando de localización.

Conclusión

En este breve tutorial, aprendimos sobre dos comandos importantes, encontrar y localizar. Ahora puede buscar fácilmente archivos en su sistema sin perderse en la pila de archivos. El uso de estos comandos seguramente le permitirá ahorrar tiempo y será eficaz para su tarea de búsqueda de archivos.