Réponses:
Une autre approche serait d'utiliser la correspondance de motifs dans locate
:
locate '/some/directory/*filename*'
Comparez la sortie des commandes ci-dessous:
$ locate tmpfile
/usr/lib64/perl5/auto/POSIX/tmpfile.al
/usr/share/man/fr/man3/tmpfile.3.gz
/usr/share/man/ja/man3/tmpfile.3.gz
/usr/share/man/man3/tmpfile.3.gz
/usr/share/man/man3p/tmpfile.3p.gz
$
$ locate '/usr/lib64/*tmpfile*'
/usr/lib64/perl5/auto/POSIX/tmpfile.al
$
locate /usr/lib*tmpfile*
donne le même résultat.
$ locate '/usr/lib64/*tmpfile'
ne retournera aucun résultat.
locate
through grep
.
Créez une base de données slocate pour votre répertoire spécifique avec:
updatedb -U /path/to/directory
et recherchez avec:
locate <search_string>
MISE À JOUR
Cela fonctionne bien sur mon système Gentoo mais CentOS ne comprend pas d' -U
option. Donc, vous pouvez essayer ci-dessous à la place:
Construisez la base de données avec:
# updatedb -U /path/to/dir -o dir_locate.db
et recherchez:
# locate -d dir_locate.db <search_string>
updatedb: can not change group of file 'db.db.kHhzFz' to 'mlocate': Operation not permitted
vérifiez comment utiliser la commande updatedb en tant qu'utilisateur ordinaire sur Linux .
locate
recherche dans un répertoire spécifié:alias my_locate="updatedb -U /path/to/yourdir -o /path/to/your_dir_locate.db; locate -d /path/to/dir_locate.db "
Une fois l'alias effectif, sur le type de terminalmy_locate *foo*
et c'est parti pour les courses. Vous pouvez concaténer des mises à jour de base de données et localiser la recherche en utilisant le caractère deux-points pour concaténer des bases de données. rtfm: linux.die.net/man/8/updatedb