Uso del comando locate en linux con 8 ejemplos

Uso del comando locate en linux con 8 ejemplos.

Cuando trabajamos en la línea de comandos de Linux, es normal que a veces necesites saber cómo encontrar archivos de forma rápida. Existen varias herramientas con esta capacidad, pero debes saber cómo y cuando usarlas. Una de estas utilidades es el comando locate, que tiene la capacidad de buscar archivos por medio de patrones.

En el artículo de hoy, veremos una serie de ejemplos de uso, pero antes debes asegurarte de que lo tienes instalado. Ejecuta el siguiente comando.

which locate

Si tienes instalada la herramienta, verás algo similar a…

sergio@sololinux:~$ which locate
/usr/bin/locate

Si no es así, debes instalar locale.

# CentOS, Fedora y derivados
sudo yum install mlocate

sudo dnf install mlocate

# Debian, Ubuntu y derivados
sudo apt install mlocate

# Arch linux, Manjaro y derivados
sudo pacman -S mlocate

# Suse, OpenSuse y derivados
sudo zypper install mlocate

Una vez instalada la herramienta, actualizamos la base de datos (por defecto se suele actualizar una vez al día).

sudo updatedb

El archivo mlocate.db se encuentra en /var/lib/mlocate/mlocate.db.

ls -l /var/lib/mlocate/mlocate.db

# Ejemplo...
sergio@sololinux:~$ ls -l /var/lib/mlocate/mlocate.db
-rw-r----- 1 root mlocate 15356100 abr 22 13:00 /var/lib/mlocate/mlocate.db
Busqueda con el comando locate en linux

Buscar archivos con el comando locate en linux

 

Uso del comando locate en linux

En los ejemplos de uso, vamos a utilizar el editor «nano«.

Buscar todos los archivos
locate nano

Ejemplo.

sergio@sololinux:~$ locate nano
/bin/nano
/bin/rnano
/etc/nanorc
/home/sergio/.local/share/nano
/usr/share/nano
/usr/share/doc/nano
/usr/share/doc/nano/AUTHORS

 

Número de archivos coincidentes

Si solo quieres saber el número de resultados, debes usar la opción «-c».

sudo locate -c nano

Se localizan 229 archivos que coinciden con el patrón definido.

root@sololinux:~# sudo locate -c nano
229
root@sololinux:~#

 

Buscar sin distinción entre mayúsculas y minúsculas

De forma predeterminada, el comando locate distingue entre mayúsculas y minúsculas. Para que esto no suceda, agregamos la opción «-i». En el ejemplo buscamos el script libera.sh.

sudo locate -i libera.sh

Observa la imagen de ejemplo, libera.sh y LIBERA.sh.

Buscar sin distinciones con el comando locate

Buscar sin distinciones con el comando locate

 

Limitar el número de resultados

El listado de archivos encontrados puede ser muy extenso, con la opción «-n + número» es posible limitar el resultado según tu indicación (en el ejemplo cinco resultados).

sudo locate -n 5 nano

Salida de ejemplo.

root@sololinux:~# sudo locate -n 15 nano
/bin/nano
/bin/rnano
/etc/nanorc
/usr/share/nano
/usr/share/doc/nano
root@sololinux:~#

 

Omitir archivos eliminados

Si eliminas un archivo y no actualizas el archivo de base de datos, el comando locate, continuará mostrándolo al realizar una búsqueda.

# Actualizar base de datos

sudo updatedb

Si en ese momento no puedes actualizar, puedes evitar que se listen los archivos recientemente eliminados con la opción «-e».

sudo locate -i -e libera.sh

En nuestro ejemplo hemos eliminado el archivo «LIBERA.sh». Observa que cuando aplicamos -e, ya no aparece el archivo.

root@sololinux:~# sudo locate -i libera.sh
/home/sergio/LIBERA.sh
/home/sergio/libera.sh
/home/sergio/Descargas/libera.sh
root@sololinux:~# 

root@sololinux:~# sudo locate -i -e libera.sh
/home/sergio/libera.sh
/home/sergio/Descargas/libera.sh
root@sololinux:~#

 

Estadísticas del archivo base de datos

Este interesante comando nos informa, de la cantidad de directorios y archivos contenidos en el archivo de base de datos. También se imprime su tamaño.

sudo locate -S

Imagen de ejemplo.

Detalles de la base de datos del comando locate

Detalles de la base de datos del comando locate

 

Otras opciones

En el extraño caso, que tu distribución linux tenga una ruta diferente de la base de datos, puedes usar la opción «-d» para inserta su ruta.

sudo locate -d [/ruta] [archivo]

No es común, pero si por casualidad se produce algún mensaje de error… puedes quitarlos con la opción «-q».

locate -q [archivo]

Uso del comando locate en linux

 

Manual del comando locate

El manual integrado de locate, es comprensible y de mucha utilidad.

man locate
OPTIONS       
       -0, --null
              Use ASCII NUL as a separator, instead of newline.

       -A, --all
              Print only names which match all non-option arguments, not
              those matching one or more non-option arguments. Uso del comando locate.

       -b, --basename
              Results are considered to match if the pattern specified
              matches the final component of the name of a file as
              listed in the database.  This final component is usually
              referred to as the `base name'.

       -c, --count
              Instead of printing the matched filenames, just print the
              total number of matches we found, unless --print (-p) is
              also present.

       -d path, --database=path
              Instead of searching the default file name database,
              search the file name databases in path, which is a colon-
              separated list of database file names.  You can also use
              the environment variable LOCATE_PATH to set the list of
              database files to search.  The option overrides the
              environment variable if both are used.  Empty elements in
              the path are taken to be synonyms for the file name of the
              default database.  A database can be supplied on stdin,
              using `-' as an element of path. If more than one element
              of path is `-', later instances are ignored (and a warning
              message is printed).

              The file name database format changed starting with GNU
              find and locate version 4.0 to allow machines with
              different byte orderings to share the databases.  This
              version of locate can automatically recognize and read
              databases produced for older versions of GNU locate or
              Unix versions of locate or find.  Support for the old
              locate database format will be discontinued in a future
              release. Uso del comando locate en linux.

       -e, --existing
              Only print out such names that currently exist (instead of
              such names that existed when the database was created).
              Note that this may slow down the program a lot, if there
              are many matches in the database.  If you are using this
              option within a program, please note that it is possible
              for the file to be deleted after locate has checked that
              it exists, but before you use it.

       -E, --non-existing
              Only print out such names that currently do not exist
              (instead of such names that existed when the database was
              created).  Note that this may slow down the program a lot,
              if there are many matches in the database.

       --help Print a summary of the options to locate and exit.

       -i, --ignore-case
              Ignore case distinctions in both the pattern and the file
              names.

       -l N, --limit=N
              Limit the number of matches to N.  If a limit is set via
              this option, the number of results printed for the -c
              option will never be larger than this number.

       -L, --follow
              If testing for the existence of files (with the -e or -E
              options), consider broken symbolic links to be non-
              existing.   This is the default.

       --max-database-age D
              Normally, locate will issue a warning message when it
              searches a database which is more than 8 days old.  This
              option changes that value to something other than 8.  The
              effect of specifying a negative value is undefined.

       -m, --mmap
              Accepted but does nothing, for compatibility with BSD
              locate.

       -P, -H, --nofollow
              If testing for the existence of files (with the -e or -E
              options), treat broken symbolic links as if they were
              existing files.  The -H form of this option is provided
              purely for similarity with find; the use of -P is
              recommended over -H.

       -p, --print
              Print search results when they normally would not, because
              of the presence of --statistics (-S) or --count (-c).

       -r, --regex
              The pattern specified on the command line is understood to
              be a regular expression, as opposed to a glob pattern.
              The Regular expressions work in the same was as in emacs
              except for the fact that "." will match a newline.  GNU
              find uses the same regular expressions.  Filenames whose
              full paths match the specified regular expression are
              printed (or, in the case of the -c option, counted).  If
              you wish to anchor your regular expression at the ends of
              the full path name, then as is usual with regular
              expressions, you should use the characters ^ and $ to
              signify this. Uso del comando locate en linux.

       --regextype R
              Use regular expression dialect R.  Supported dialects
              include `findutils-default', `posix-awk', `posix-basic',
              `posix-egrep', `posix-extended', `posix-minimal-basic',
              `awk', `ed', `egrep', `emacs', `gnu-awk', `grep' and
              `sed'.  See the Texinfo documentation for a detailed
              explanation of these dialects.

       -s, --stdio
              Accepted but does nothing, for compatibility with BSD
              locate.

       -S, --statistics
              Print various statistics about each locate database and
              then exit without performing a search, unless non-option
              arguments are given.  For compatibility with BSD, -S is
              accepted as a synonym for --statistics.  However, the
              output of locate -S is different for the GNU and BSD
              implementations of locate.

       --version
              Print the version number of locate and exit.

       -w, --wholename
              Match against the whole name of the file as listed in the
              database.  This is the default. Uso del comando locate.
Comando locate para buscar patrones

Comando locate para buscar patrones

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Uso del comando locate en linux con 8 ejemplos.

Chat de SoloLinux en Telegram

 

Agregar comentario

1 logo sololinux

Suscríbete a SoloLinux

Recibe todos los nuevos artículos es tu correo electrónico

You have Successfully Subscribed!

Ir al contenido