J'essaie de localiser toutes les copies de example.filename
sur mon serveur FreeBSD. Quelle est la meilleure façon / la plus simple / la plus efficace de le faire?
J'essaie de localiser toutes les copies de example.filename
sur mon serveur FreeBSD. Quelle est la meilleure façon / la plus simple / la plus efficace de le faire?
Réponses:
find / -name example.filename
locate filename
Bien plus que find
, si vous utilisez le service de localisation, et il trouve que les fichiers qui existaient au moment de la updatedb
dernière exécution (usualy la nuit befor sous le contrôle d'une tâche cron).
Vous pouvez courir updatedb
à la main, mais cela est encore plus lent que le find
cletus ne le suggère et nécessite une racine. Je mets parfois à jour la base de données à la main après avoir installé un tas de nouvelles choses.
find /
ou sur un grand arbre plus d'une fois par semaine, alors exécuter le locate
service en vaut la peine, car locate(1)
c'est tellement plus rapide.
sudo periodic weekly
met à jour la locate
base de données. Exécutez-le après toute installation ou téléchargement pouvant contenir les fichiers que vous désirez.
Si vous avez installé Locate (aka slocate), alors
locate example.filename
Locate exécute une tâche cron tous les soirs qui réindexe tous les fichiers de votre machine. Ce n'est pas toujours à jour pour cette raison.
Parfois, vous souhaitez rechercher des fichiers à un niveau de répertoire spécifique. Dans ce cas, il peut être pratique d'utiliser des caractères génériques shell:
ls /data/*/example.filename
Évidemment, cela ne fonctionne que si vous avez une structure de répertoire rigide.
locate
Comme d'autres l'ont mentionné, locate
c'est le moyen rapide de trouver un fichier. Cette commande utilise un index précompilé des noms de fichiers et de dossiers. Cette base de données de noms est recherchée, plutôt que de parcourir votre système de fichiers.
locate example.filename
Pour être insensible à la casse, ajoutez -i
.
locate -i eXAmPle.FileName
locate
base de donnéesLa base de données utilisée par locate
doit être à jour. Après avoir effectué une installation ou un téléchargement pouvant contenir le fichier souhaité, vous devez mettre à jour la locate
base de données.
La locate
base de données sera éventuellement mise à jour automatiquement par votre système FreeBSD. Un ensemble hebdomadaire de tâches comprend cette tâche. Ces tâches sont répertoriées dans le /etc/periodic/weekly/310.locate
script.
Le moyen le plus simple et le plus sûr de forcer la mise à jour précoce de la locate
base de données est de forcer le travail hebdomadaire à effectuer maintenant.
sudo periodic weekly
Ou, vous pouvez même forcer toutes les tâches régulières à effectuer. Vous voudrez peut-être le faire immédiatement après avoir configuré un nouveau système FreeBSD.
sudo periodic daily weekly monthly
Si vous utilisez d'autres moyens pour mettre à jour la locate
base de données, vous pouvez recevoir un message indiquant qu'il n'est pas sûr, révélant les noms de tous les fichiers de votre système à n'importe quel utilisateur du système FreeBSD. L'utilisation de l' periodic
itinéraire évite ce problème.
Si vous avez la base de données de localisation à jour, alors:
locate example.filename
Je fais parfois
find . | grep example.filename
probablement extrêmement inefficace cependant.