Diferencia entre localizar, cuál y encontrar Comando en Linux

Hay una serie de utilidades de Linux que se pueden usar para ubicar archivos en una instalación de Linux, y tres de las más comunes son buscar, ubicar y cuál. Estas tres utilidades tienen funciones similares, pero funcionan y devuelven datos de diferentes maneras. En este artículo, vamos a discutir estas tres útiles y poderosas utilidades de línea de comandos para buscar un archivo en particular. 

Localizar comando

localizar es una utilidad de Unix que sirve para encontrar archivos en sistemas de archivos. Busca a través de una base de datos local preconstruida de todos los archivos en el sistema de archivos generado por elcomando updatedb . Tenga en cuenta que es fundamental actualizar la base de datos, ya que los archivos recientes guardados durante un período de menos de 24 horas no se actualizan en la base de datos de forma predeterminada y la base de datos se actualiza una vez en un lapso de 24 horas. 

Sintaxis: 

locate [OPTION]... PATTERN...

Por ejemplo: vamos a crear un archivo en el escritorio llamado findme.txt . El uso del comando de localización sin actualizar la base de datos no devuelve resultados; sin embargo, después de actualizar la base de datos local de todos los archivos en el sistema de archivos, finalmente podemos localizar el archivo. 

  1. Creando un nuevo archivo findme
echo "findme" >> findme
  1.  

  1. Usando localizar findme 

     

  1. No se puede encontrar el archivo. Se actualiza la base de datos local de todos los archivos del sistema de archivos. 

     

  1. Intentando localizar el comando de nuevo localizar findme 

     

  1. Se muestra la ubicación del archivo. Por lo tanto, es esencial actualizar la base de datos antes de usar el comando de localización.

Cual

El comando which busca en los directorios que están definidos en la variable de entorno $PATH para un nombre de archivo determinado. Si se encuentra una coincidencia, que devuelve la ruta completa al archivo ejecutable 

Sintaxis: 
 

which [-a] filename ...

Por ejemplo: 

which aircrack-ng

Devuelve la ruta al archivo ejecutable aircrack-ng. 

Encontrar

El comando buscar es una herramienta de búsqueda más agresiva que localizar o cuál . Find puede buscar recursivamente cualquier ruta dada para varios archivos. Usando el comando de archivo podemos buscar archivos por nombre, propietario, grupo, permisos, tipo, tamaño, hora de modificación, fecha y varios otros criterios. El comando de búsqueda es muy eficiente, pero esta eficiencia tiene un costo de tiempo. 

Sintaxis: 
 

find  [-H]  [-L] [-P] [-D debugopts] [-Olevel] [starting-point...]  [expression]

Las opciones -H , -L y -P controlan el tratamiento de los enlaces simbólicos. Las opciones -H -L -P -D -O deben aparecer antes del primer nombre de ruta si es necesario. La parte de la línea de comando después de la lista de puntos de inicio es la expresión. Este es un tipo de especificación de consulta que describe cómo hacemos coincidir los archivos y qué hacemos con los archivos que coincidieron. 

Entrando archivo o archivo. mostrará los nombres de ruta de todos los archivos en el directorio actual y todos los subdirectorios. El directorio predeterminado es el directorio actual y la expresión predeterminada es -print

. represents current directory
/ represents root directory
  • Buscar un archivo por su nombre 

     

#  find / -name findme
  •  

  • Buscar solo un archivo de texto 

     

#  find / -name "*.txt"
  •  

  • Buscando un archivo ignorando mayúsculas y minúsculas. 

     

#  find / -iname fIndMe
  •  

  • Buscando solo archivo. 

     

#  find / -type f -name findme
  •  

  • Búsqueda de directorios solamente. 

     

#  find / -type d -name find
  •  

  • Búsqueda de archivos basada en permisos. 

     

#  find / -type f -perm 0777 -print
  •  

  • Cambio de permiso de un archivo. 

     

#  find / -type f -perm 0777 -exec chmod 755 {} \;
  •  

  • Archivos modificados hace más de 10 días. 

     

#  find / -mtime 10
  • Archivos modificados hace menos de 10 días. 

     

#  find / -mtime -10
  •  

  • Archivos modificados más de 1 minuto. 

     

#  find / -mmin 1
  •  

  • Archivos modificados en menos de 1 minuto. 

     

#  find / -mmin -1
  •  

  • Archivos con un tamaño de más de 10 MB. 

     

#  find / -size 10M
  •  

  • Buscar archivos y directorios vacíos 

     

#  find / -empty
  •  

Conclusión: diferencias finales entre localizar y encontrar 

  • Hay ventajas y desventajas en el uso de la localización para buscar nombres de archivo en lugar del comando de búsqueda. Un comando de localización encuentra archivos más rápido porque busca en una base de datos en lugar de tener que buscar en todo el sistema de archivos en vivo. Una desventaja es que el comando de localización no puede encontrar ningún archivo agregado al sistema desde la última vez que se creó la base de datos. 
     
  • No todos los archivos en su sistema de archivos se almacenan en la base de datos. El contenido del archivo /etc/updatedb.conf limita qué nombres de archivo se recopilan mediante la eliminación de tipos de montaje seleccionados, tipos de sistemas de archivos, tipos de archivos y puntos de montaje. Por ejemplo, los nombres de archivo no se recopilan de sistemas de archivos montados de forma remota (cifs, nfs, etc.) o de CD o DVD montados localmente. Las rutas que contienen archivos temporales (/tmp) y archivos de spool (/var/spool/cups) también se eliminan. Puede agregar elementos para podar (o eliminar algunos elementos que no desea podar) la base de datos de localización según sus necesidades. 
  • Como usuario habitual, no podrá ver ningún archivo de la base de datos de localización que normalmente no pueda ver en el sistema de archivos. Por ejemplo, si no puede escribir ls para ver los archivos en el directorio /root, no podrá ubicar los archivos almacenados en ese directorio. 
  • Si agrega archivos a su sistema después de que se ejecute la actualización, no podrá ubicar esos archivos hasta que se vuelva a ejecutar la actualización. Para que la base de datos contenga todos los archivos hasta el momento actual, simplemente puede ejecutar updatedb desde el shell como root. 
  •  
  • El comando de búsqueda es el mejor comando para buscar archivos en su sistema de archivos, en función de una variedad de atributos. -vista momentánea de los archivos en su sistema Linux. Sin embargo, también puede indicarle a find que comience en un punto particular del sistema de archivos, por lo que la búsqueda puede ser más rápida al limitar el área del sistema de archivos que se está buscando. 

Publicación traducida automáticamente

Artículo escrito por syedmodassirali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *