GNU/Linux >> Tutoriales Linux >  >> Ubuntu

La diferencia entre localizar/dónde está/cuál?

¿Cuál es la diferencia básica entre locate whereis y which comando.

La diferencia básica que observé es que locate localiza todos los nombres de archivos relacionados en todo el sistema de archivos, mientras que whereis y which los comandos solo dan la ubicación (sistema/dirección local del archivo) de la aplicación instalada. ¿Qué tan precisa es mi observación?

¿Cómo se implementan estos comandos internamente? ¿Por qué locate funciona tan rápido en comparación con la búsqueda de guiones, mientras que locate tiene que buscar un nombre de archivo en particular que coincida con la cadena de destino en toda la jerarquía del sistema de archivos?

Respuesta aceptada:

which encuentra el ejecutable binario del programa (si está en su RUTA). man which explica más claramente:

que devuelve los nombres de ruta de los archivos (o enlaces) que se
ejecutarían en el entorno actual, si sus argumentos se hubieran dado como comandos en un shell estrictamente compatible con POSIX. Lo hace buscando en la RUTA archivos ejecutables que coincidan con los nombres de los argumentos. No sigue enlaces simbólicos.

whereis encuentra los archivos binarios, fuente y de la página del manual para un programa. Por ejemplo

$ whereis gimp
/usr/bin/gimp /usr/lib/gimp /etc/gimp /usr/share/gimp /usr/share/man/man1/gimp.1.gz

Puede obtener detalles adicionales al pasar la salida de estos comandos como argumentos a ls -l o file

$ ls -l $(which gimp)
lrwxrwxrwx 1 root root 8 Jun 30 19:59 /usr/bin/gimp -> gimp-2.8

$ file $(which gimp)
/usr/bin/gimp: symbolic link to gimp-2.8

locate de hecho, encuentra todos los archivos que tienen el patrón especificado en cualquier lugar de sus rutas. Puede indicarle que solo busque archivos y directorios cuyos nombres (en lugar de rutas completas) incluya el patrón con -b opción, que suele ser lo que desea, y ofrece una lista menos difícil de manejar.

locate es rápido porque utiliza una base de datos binaria que se actualiza periódicamente (una vez al día, por cron ). Puede actualizarlo usted mismo para asegurarse de que se encuentren los archivos agregados recientemente ejecutando sudo updatedb

Una cosa más sobre locate – No importa si los archivos aún existen o no, así que para evitar encontrar archivos eliminados recientemente, use -e . A menudo también canalizo a less ya que la lista puede ser larga. Normalmente hago:

sudo updatedb && locate -b -e gimp | less

Aquí se explica cómo funciona el tablero de Unity:utiliza Zeitgeist para indexar archivos del sistema y aprender de los patrones de uso, y permite que otras aplicaciones utilicen estos datos, por lo que está haciendo mucho más trabajo que locate .


Ubuntu
  1. ¿Cuál es la diferencia entre InnoDB y MyISAM?

  2. ¿Cuál es la diferencia entre Sudo Su y Sudo Su?

  3. ¿La diferencia entre Sudo y Gksu es la misma que entre Sudo -i y Sudo -s?

  4. ¿La diferencia entre `hombre` y `hombre (#)`?

  5. ¿Cuál es la diferencia entre localizar y encontrar el comando en Linux?

La diferencia entre sudo y su explicada

La diferencia entre la copia de seguridad y la replicación

¿Cuál es la diferencia entre Rsync y BTRFS en Linux?

¿Cuál es la diferencia entre el comando Cat y Touch?

¿Diferencia entre controladores adicionales (nvidia)?

¿Cuál es la diferencia entre unlink y rm?