Una búsqueda con locate
encuentra rutas en el sistema de archivos.
A menudo, usted sabe a priori que está interesado en archivos o directorios solamente.
Una búsqueda 'localizar' a menudo devuelve muchos resultados. Sería útil incluir solo uno de los tipos en el resultado, ya que ayuda a acortar la salida.
Pero hay un argumento más interesante para omitir archivos o directorios: porque la lista de rutas de resultados puede ser ambigua, no solo en teoría.
El siguiente ejemplo es un caso del mundo real, y no es inusual:
$ locate --regex --basename "xfce4-keyboard-overlay$"
/usr/local/bin/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay
Ok, encontramos algo! Pero ... ¿archivos o directorios?
$ file /usr/local/bin/xfce4-keyboard-overlay
/usr/local/bin/xfce4-keyboard-overlay: bash script
Entonces ese es un archivo ...
$ file /usr/local/share/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay: directory
mientras que el segundo no lo es.
Esta ambigüedad está haciendo que las largas listas de rutas sean difíciles de leer, por lo que sería realmente bueno filtrar los directorios, por ejemplo, usando una opción de línea de comando para locate
.
Existe algo como esto? ¿Incluso si el filtro para directorios está separado de localizar?
Al menos, uno podría usar un script para iterar todos los nombres de archivo para verificar, lo que puede ser lento.
while
declaración?