Android

Commande Locate sous Linux

[ TUTO] : LINUX - LA BASE DES LIGNES DE COMMANDES ?

[ TUTO] : LINUX - LA BASE DES LIGNES DE COMMANDES ?

Table des matières:

Anonim

L'une des opérations les plus courantes lorsque vous travaillez sous Linux consiste à rechercher des fichiers et des répertoires. Sur les systèmes Linux, il existe plusieurs commandes qui vous permettent de rechercher des fichiers avec find et locate étant les plus utilisés.

La commande locate est le moyen le plus rapide et le plus simple de rechercher des fichiers et des répertoires par leur nom.

Dans ce didacticiel, nous expliquerons comment utiliser la commande locate .

Installation de locate (commande Locate introuvable)

Selon la distribution et la façon dont le système a été configuré, le package de localisation peut être préinstallé ou non sur votre système Linux.

Pour vérifier si l'utilitaire de locate est installé sur votre système, ouvrez votre terminal, tapez locate et appuyez sur Enter . Si le package est installé, le système affichera locate: no pattern to search for specified , sinon vous verrez quelque chose comme la locate command not found .

Si locate n'est pas installé, vous pouvez facilement l'installer en utilisant le gestionnaire de paquets de votre distribution.

Installer la locate sur Ubuntu et Debian

sudo apt update sudo apt install mlocate

Installer locate sur CentOS et Fedora

sudo yum install mlocate

Comment locate travail

La commande locate recherche un modèle donné via un fichier de base de données généré par la commande updatedb . Les résultats trouvés sont affichés à l'écran, un par ligne.

Pendant l'installation du package mlocate, un travail cron est créé qui exécute la commande updatedb toutes les 24 heures. Cela garantit que la base de données est régulièrement mise à jour. Pour plus d'informations sur le travail cron, consultez le fichier /etc/cron.daily/mlocate .

La base de données peut être mise à jour manuellement en exécutant la commande updatedb tant qu'utilisateur root ou utilisateur avec les privilèges sudo:

sudo updatedb

Le processus de mise à jour prendra un certain temps, selon le nombre de fichiers et de répertoires et la vitesse de votre système.

Les fichiers créés après la mise à jour de la base de données ne seront pas affichés dans les résultats de localisation.

Par rapport à la commande find plus puissante qui recherche le système de fichiers, la locate fonctionne beaucoup plus rapidement mais manque de nombreuses fonctionnalités et ne peut rechercher que par le nom du fichier.

Comment utiliser la commande locate

La syntaxe de la commande locate est la suivante:

locate PATTERN…

Dans sa forme la plus basique, lorsqu'elle est utilisée sans aucune option, la commande locate imprimera le chemin absolu de tous les fichiers et répertoires qui correspondent au modèle de recherche et pour lesquels l'utilisateur a l'autorisation de lecture.

Par exemple, pour rechercher un fichier nommé .bashrc vous devez taper:

locate.bashrc

La sortie inclura les noms de tous les fichiers contenant la chaîne .bashrc dans leurs noms:

/etc/bash.bashrc /etc/skel/.bashrc /home/linuxize/.bashrc /usr/share/base-files/dot.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

Le fichier /root/.bashrc ne sera pas affiché car nous avons exécuté la commande en tant qu'utilisateur normal qui n'a pas les autorisations d'accès au répertoire /root .

Si la liste des résultats est longue, pour une meilleure lisibilité, vous pouvez diriger la sortie vers la commande less :

locate.bashrc | less

La commande locate accepte également les modèles contenant des caractères globbing tels que le caractère générique * . Lorsque le motif ne contient aucun caractère de globbing, la commande recherche *PATTERN* , c'est pourquoi dans l'exemple précédent, tous les fichiers contenant le motif de recherche dans leurs noms étaient affichés.

Le caractère générique est un symbole utilisé pour représenter zéro, un ou plusieurs caractères. Par exemple, pour rechercher tous les fichiers .md sur le système que vous utiliseriez:

locate *.md

Pour limiter les résultats de la recherche, utilisez l'option -n suivie du nombre de résultats que vous souhaitez afficher. Par exemple, la commande suivante recherchera tous les fichiers .py et n'affichera que 10 résultats:

locate -n 10 *.py

Par défaut, locate effectue des recherches sensibles à la casse. L'option -i ( --ignore-case ) permet de locate pour ignorer la casse et exécuter une recherche insensible à la casse.

locate -i readme.md

/home/linuxize/p1/readme.md /home/linuxize/p2/README.md /home/linuxize/p3/ReadMe.md

Pour afficher le nombre de toutes les entrées correspondantes, utilisez l'option -c ( --count ). La commande suivante retournerait le nombre de tous les fichiers contenant .bashrc dans leurs noms:

locate -c.bashrc

6

Par défaut, locate ne vérifie pas si les fichiers trouvés existent toujours sur le système de fichiers. Si vous avez supprimé un fichier après la dernière mise à jour de la base de données, s'il correspond au modèle de recherche, il sera inclus dans les résultats de la recherche.

Pour afficher uniquement les noms des fichiers qui existent au moment de la locate , utilisez l'option -e ( --existing ). Par exemple, les éléments suivants renverraient uniquement les fichiers .json existants:

locate -e *.json

locate --regex -i "(.mp4|\.avi)"

Conclusion

La commande locate recherche dans le système de fichiers les fichiers et répertoires dont le nom correspond à un modèle donné. La syntaxe des commandes est facile à mémoriser et les résultats sont affichés presque instantanément.

Pour plus d'informations sur toutes les options disponibles de la commande locate tapez man locate dans votre terminal.

localiser le terminal