J'ai écrit:
locate Origin90SR2DVD.iso
Et j'ai reçu le chemin où se trouve ce fichier:
/home/david/Origin90SR2DVD.iso
Alors j'ai écrit:
cd /home/david
J'ai couru:
ls -lrth
Et je ne trouve pas le fichier Origin90SR2DVD.iso
.
Pourquoi le fichier n'est pas dans ce chemin?
Il est possible que vous ayez le fichier Origin90SR2DVD.iso
à l’emplacement /home/david
lorsque le fichier de base de données de locate
(/var/lib/mlocate/mlocate.db
) a été mis à jour la dernière fois par cron
(ou vous-même). Comme locate
juste pour les noms de fichier dans le fichier de base de données (c'est pourquoi c'est rapide) pendant la recherche, vous pouvez considérer que sa technique n'est pas en direct .
Bien que locate
indique l'emplacement du fichier, il est fort possible que le fichier n'y soit pas présent (il peut être supprimé ou déplacé ailleurs).
Vous avez deux moyens d'être sûr de ce qui se passe:
Vous pouvez mettre à jour le fichier de base de données locate
avec Sudo updatedb
, puis exécuter la même commande locate
.
Sinon, vous pouvez utiliser find
pour effectuer une recherche en direct . Pour rechercher le fichier dans votre répertoire personnel de manière récursive:
find ~ -type f -iname 'Origin90SR2DVD.iso' -print -o -path ~/.gvfs -Prune
-path ~/.gvfs -Prune
(grâce à Eliah Kagan) est utilisé pour ne pas descendre dans le répertoire ~/.gvfs
lors de la recherche. Sinon, nous obtiendrons un message d'autorisation refusée gênant, étant donné que le répertoire appartient à root. Vous pouvez l'omettre (et voir le message) en supprimant -print -o -path ~/.gvfs -Prune
.
Vous pouvez également rechercher tous les emplacements possibles dans la hiérarchie du système de fichiers. Ici, j’ai envisagé peu d’endroits pouvant contenir le fichier. Ce sera inhabituel si votre fichier se trouve dans un autre répertoire.
Sudo find /home /root /opt /usr/local /mnt -type f -iname 'Origin90SR2DVD.iso'
EDIT:
La base de données de locate
est mise à jour quotidiennement par cron
. Dans mon système, il est exécuté tous les jours à 6h25 (vérifiez votre code /etc/crontab
).
En fait, anacron
exécutera le travail cron
pour s’assurer que, si l’ordinateur est éteint à ce moment-là, il sera exécuté après sa prochaine mise sous tension. Si anacron
n'est pas disponible, run-parts
exécutera les fichiers (y compris mlocate
) dans le répertoire /etc/cron.daily
uniquement à l'heure indiquée.
Exécutez Sudo updatedb
pour vous assurer que votre base de données mlocate est à jour.