J'essaie de localiser toutes les copies de example.filenamesur 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.filenamesur 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 updatedbderniè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 findcletus 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 locateservice en vaut la peine, car locate(1)c'est tellement plus rapide.
sudo periodic weeklymet à jour la locatebase 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.
locateComme d'autres l'ont mentionné, locatec'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
locatebase de donnéesLa base de données utilisée par locatedoit être à jour. Après avoir effectué une installation ou un téléchargement pouvant contenir le fichier souhaité, vous devez mettre à jour la locatebase de données.
La locatebase 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.locatescript.
Le moyen le plus simple et le plus sûr de forcer la mise à jour précoce de la locatebase 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 locatebase 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' periodicitiné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.