web-dev-qa-db-fra.com

Comment trouver un fichier dans FreeBSD

J'essaie de localiser toutes les copies de example.filename sur mon serveur FreeBSD. Quel est le meilleur moyen/le plus simple/le plus efficace de faire cela?

14
Ian
find / -name example.filename
18
cletus
locate filename

Beaucoup plus rapide que find, si Vous exécutez le service de localisation, et il ne trouve que des fichiers existants à l'heure updatedb Dernier couru (habituellement la nuit avant sous le contrôle d'un travail de cron).

Vous peut Run updatedb à la main, mais cela est encore plus lent que le find cloretus suggère et nécessite une racine. Je mettant parfois à jour la base de données à la main après avoir installé une bande de nouvelles choses.

Si vous avez installé (AKA Slalate) installée, alors

locate example.filename

localiser dirige un travail de cron chaque nuit qui réindexe tous les fichiers de votre machine. Ce n'est pas toujours à jour pour cette raison.

2
Paul Tomblin

Parfois, vous voulez trouver 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

De toute évidence, cela ne fonctionne que si vous avez une structure de répertoire rigide.

2
Jon Ericson

locate

Comme les autres mentionnés, locate 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 ramper via votre système de fichiers.

locate example.filename 

Être insensible à la casse, ajoutez -i.

locate -i eXAmPle.FileName

Mise à jour locate Base de données

La base de données utilisée par locate doit être à jour. Après avoir effectué une installation ou un téléchargement pouvant contenir votre fichier souhaité, vous devez mettre à jour la base de données locate.

La base de données locate sera éventuellement mise à jour automatiquement par votre système FreeBSD. Il existe un ensemble hebdomadaire de tâches ménagères qui inclut cette tâche. Ces tâches sont énumérées dans le /etc/periodic/weekly/310.locate script.

Le moyen le plus simple le plus sûr de forcer la mise à jour rapide de la base de données locate est de forcer le jeu de tâches hebdomadaires à effectuer maintenant.

Sudo periodic weekly

Ou, vous pouvez même forcer toutes les tâches régulières à faire. Vous voudrez peut-être le faire immédiatement après la mise en place d'un nouveau système FreeBSD.

Sudo periodic daily weekly monthly

Si vous utilisez d'autres avenues pour mettre à jour la base de données locate, vous pouvez recevoir un message d'être dangereux, 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'itinéraire periodic évite ce problème.

1
Basil Bourque