Ce tutoriel vous guidera à travers les différentes façons de trouver un répertoire dans Linux. Comme vous le savez peut-être déjà, dans Linux tout est un fichier, y compris les répertoires. Et l’une des choses courantes qu’un utilisateur de Linux fera dans la ligne de commande est de rechercher un fichier ou un répertoire.
Il existe plusieurs moyens et utilitaires différents utilisés pour rechercher des fichiers en ligne de commande tels que find, locate et which. Cependant, le dernier utilitaire (which) est uniquement utilisé pour localiser une commande.
Pour ce tutoriel, nous nous concentrerons principalement sur l’utilitaire find, qui recherche des fichiers sur un système de fichiers Linux en direct et qui est plus efficace et fiable que locate.
L’inconvénient de locate est qu’il lit une ou plusieurs bases de données créées par updatedb, il ne recherche pas à travers un système de fichiers en direct. De plus, il n’offre pas non plus de flexibilité en ce qui concerne l’endroit où rechercher (point de départ).
Voici la syntaxe pour exécuter la commande locate:
# locate [option] [search-pattern]
Pour démontrer l’inconvénient de localiser, supposons que nous recherchions un répertoire nommé pkg
dans le répertoire de travail actuel.
Note : Dans la commande ci-dessous, l’option --basename
ou -b
indique à localiser de ne correspondre qu’au nom de fichier (répertoire) (qui est exactement pkg) mais pas au chemin (/chemin/vers/pkg). Là où \
est un caractère de globbing, il désactive le remplacement implicite de pkg par *pkg*.
$ locate --basename '\pkg'

Comme vous pouvez le voir dans la sortie de la commande ci-dessus, localiser recherchera à partir du répertoire racine (/), c’est pourquoi d’autres répertoires portant le même nom sont correspondants.
Par conséquent, pour résoudre ce problème, utilisez trouver en suivant la syntaxe simplifiée ci-dessous :
$ find starting-point options [expression]
Jetons un coup d’œil à quelques exemples.
Pour rechercher le même répertoire (pkg)
ci-dessus, dans le répertoire de travail actuel, exécutez la commande suivante, où le drapeau -name
lit l’expression qui dans ce cas est le nom de répertoire.
$ find . -name "pkg"
Si vous rencontrez des erreurs de » Permission refusée « , utilisez la commande sudo comme ceci :
$ sudo find . -name "pkg"

Vous pouvez empêcher find de rechercher d’autres types de fichiers sauf les répertoires en utilisant le drapeau -type
pour spécifier le type de fichier (dans la commande ci-dessous d
signifie répertoire) comme suit :
$ sudo find . -type d -name "pkg"
De plus, si vous souhaitez afficher le répertoire dans un format de liste longue, utilisez l’option -ls
:
$ sudo find . -type d -name "pkg" -ls

Ensuite, l’option -iname
permettra une recherche insensible à la casse :
$ sudo find . -type d -iname "pkg" $ sudo find . -type d -iname "PKG"

Pour trouver des informations d’utilisation plus intéressantes et avancées, consultez les pages de manuel de find et de locate.
$ man find $ man locate
En dernier lieu, la commande find est plus fiable et efficace pour rechercher des fichiers (ou répertoires) dans un système Linux par rapport à la commande locate.
De la même manière qu’auparavant, n’oubliez pas de nous envoyer vos commentaires ou questions via la section des commentaires ci-dessous. Enfin, restez toujours connecté à Tecmint.