¿Qué es y cómo se utiliza el comando LOCATE de Linux?

Hosting SSD

El comando «locate» de Linux es una herramienta utilizada para localizar archivos rápidamente en el sistema operativo a través de la línea de comandos.

Realiza una búsqueda rápida utilizando una base de datos configurada en el fichero /etc/updatedb.conf.

[[email protected] ~]# cat /etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes"
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmpi /serveis"
[[email protected]~]#

¿Cómo se utiliza el comando locate?

Para encontrar archivos con el comando locate, simplemente escribiremos «locate nombre_archivo«. Veámos un ejemplo:

[[email protected]~]# locate scsi_id
/lib/udev/scsi_id
/sbin/scsi_id
/usr/share/man/man8/scsi_id.8.gz
[[email protected]~]#

Como podemos comprobar, ha encontrado el binario «scsi_id» y el fichero comprimido gz de la ayuda del comando en el man.

También podemos utilizar expresiones regulares con el parámetro «-r» para encontrar archivos con el comando locate:

[[email protected]~]# locate -r scsi* |head -5
/dev/.udev/db/scsi_generic:sg0
/dev/.udev/db/scsi_generic:sg1
/dev/.udev/db/scsi_generic:sg2
/dev/.udev/db/scsi_generic:sg3
/dev/.udev/db/scsi_generic:sg4
[[email protected]~]#

Si queremos saber cuántos resultados hemos obtenido en nuestra búsqueda, utilizaremos el parámetro «-c»:

[[email protected] ~]# locate -c scsi_id
3
[[email protected] ~]#

Si queremos ignorar las mayúsculas usaremos añadiremos el parámetro «-i».

Con «man locate» tenemos información detallada sobre lo que hace cada parámetro.

Otra manera útil de encontrar archivos en Linux, es mediante el comando find.

Actualizar la base de datos mlocate.db

El comando locate utiliza la base de datos mlocate.db, por defecto. Y se utiliza automáticamente de manera periódica. Si queremos actualizarla manualmente, utilizaremos el comando updatedb.

Una de las razones más frecuentes por las que se actualiza esta base de datos, es porque hemos modificado el fichero /etc/updatedb.conf, añadiendo o eliminando algún punto de montaje o filesystem.

  Configurar un servidor y un cliente de LDAP en Linux CentOS

En el siguiente ejemplo, he añadido un filesystem del sistema que quiero que el comando locate ignore para que la base de datos mlocate.db ocupe menos espacio:

[[email protected]~]# df -hP /var
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/vg00-varvol  9.3G  6.9G  1.9G  79% /var
[[email protected] ~]# vi /etc/updatedb.conf
[[email protected] ~]# updatedb
[[email protected] ~]# df -hP /var
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/vg00-varvol  9.3G  6.8G  2.1G  77% /var
[[email protected]~]# 

Error /var/lib/mlocate/mlocate.db’: No such file or directory

A veces, el comando locaeda el siguiente error:

[[email protected] ~]# locate java
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
[[email protected] ~]#

Lo más probable es que se haya corrompido la base de datos mlocate.db y debamos recrearla con el comando updatedb.

[[email protected] ~]# updatedb
[[email protected] ~]# locate java
/etc/.java
/etc/java
/etc/.java/.systemPrefs
/etc/alternatives/alt-java
/etc/alternatives/alt-java.1.gz
/etc/alternatives/java
/etc/alternatives/java.1.gz
/etc/crypto-policies/back-ends/java.config
/etc/dnf/modules.d/javapackages-runtime.module
/etc/java/java-1.8.0-openjdk
/etc/java/security
/etc/java/java-1.8.0-openjdk/java-1.8.0-openjdk-1.8.0.292.b10-0.el8_3.x86_64
/etc/java/java-1.8.0-openjdk/java-

Compárteme

Contenido Relacionado

Linux
David Martínez Perales

Tutorial de Ansible

Tabla de contenidos1 Acceso a la documentación interna de Ansible2 Instalar Ansible3 Configurar Ansible3.1 Mejora de la velocidad de ejecución

Leer más »

Deja un comentario