Une recherche avec locate
trouve des chemins dans le système de fichiers.
Souvent, vous savez a priori que vous vous intéressez uniquement aux fichiers ou aux répertoires.
Une recherche «localiser» renvoie souvent de nombreux résultats. Il serait utile d'inclure un seul des types dans le résultat, car cela permet de raccourcir la sortie.
Mais il y a un argument plus intéressant pour laisser de côté les fichiers ou les répertoires: parce que la liste des chemins de résultats peut être ambiguë - pas seulement en théorie.
L'exemple ci-dessous est un cas réel, et n'est pas inhabituel:
$ locate --regex --basename "xfce4-keyboard-overlay$"
/usr/local/bin/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay
Ok, on a trouvé quelque chose! Mais ... des fichiers ou des répertoires?
$ file /usr/local/bin/xfce4-keyboard-overlay
/usr/local/bin/xfce4-keyboard-overlay: bash script
Voilà donc un fichier ...
$ file /usr/local/share/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay: directory
tandis que le second ne l'est pas.
Cette ambiguïté rend les longues listes de chemins difficiles à lire, il serait donc très agréable de filtrer les répertoires, par exemple en utilisant une option de ligne de comman pour locate
.
Existe-t-il quelque chose comme ça? Même si le filtre des répertoires est distinct de localiser?
Au moins, on pourrait utiliser un script pour parcourir tous les noms de fichiers à vérifier - ce qui peut être lent.
while
déclaration fait?