28Jun

Comment rechercher des fichiers et des dossiers sous Linux à l'aide de la ligne de commande

La plupart des gens utilisent un gestionnaire de fichiers graphique pour trouver des fichiers sous Linux, tels que Nautilus dans Gnome, Dolphin dans KDE et Thunar dans Xfce. Cependant, il existe plusieurs façons d'utiliser la ligne de commande pour trouver des fichiers sous Linux, quel que soit le gestionnaire de bureau que vous utilisez.

Utilisation de la commande de recherche

La commande "find" vous permet de rechercher les fichiers pour lesquels vous connaissez les noms de fichiers approximatifs. La forme la plus simple de la commande recherche les fichiers dans le répertoire en cours et récursivement dans ses sous-répertoires correspondant aux critères de recherche fournis. Vous pouvez rechercher des fichiers par nom, propriétaire, groupe, type, autorisations, date et autres critères.

Lorsque vous tapez la commande suivante à l'invite, tous les fichiers trouvés dans le répertoire en cours sont répertoriés.

trouver.

Le point après "find" indique le répertoire en cours.

Pour rechercher les fichiers correspondant à un modèle spécifique, utilisez l'argument -name. Vous pouvez utiliser des métacaractères de nom de fichier( tels que *), mais vous devez soit placer un caractère d'échappement( \) devant chacun d'entre eux, soit les placer entre guillemets.

Par exemple, si nous voulons trouver tous les fichiers qui commencent par "pro" dans le répertoire Documents, nous utiliserions la commande cd Documents / pour passer au répertoire Documents, puis tapez la commande suivante:

find.-name pro \ *

Tous les fichiers du répertoire courant commençant par "pro" sont listés.

REMARQUE: La commande find est par défaut sensible à la casse. Si vous souhaitez que la recherche d'un mot ou d'une phrase soit insensible à la casse, utilisez l'option -iname avec la commande find. C'est la version insensible à la casse de la commande -name.

Si find ne trouve aucun fichier correspondant à vos critères, il ne produit aucune sortie.

La commande find a beaucoup d'options disponibles pour affiner la recherche. Pour plus d'informations sur la commande find, exécutez man find dans une fenêtre Terminal et appuyez sur Entrée.

Utilisation de la commande Locate

La commande locate est plus rapide que la commande find car elle utilise une base de données précédemment construite, alors que la commande find recherche dans le système réel, à travers tous les répertoires et fichiers réels. La commande locate renvoie une liste de tous les chemins d'accès contenant le groupe de caractères spécifié.

La base de données est régulièrement mise à jour à partir de cron, mais vous pouvez également la mettre à jour vous-même à tout moment pour obtenir des résultats actualisés. Pour ce faire, tapez la commande suivante à l'invite:

sudo updatedb

Entrez votre mot de passe lorsque vous y êtes invité.

Le formulaire de base de la commande locate trouve tous les fichiers du système de fichiers, en commençant par la racine, qui contiennent tout ou partie des critères de recherche.

locate mydata

Par exemple, la commande ci-dessus a trouvé deux fichiers contenant "mydata" et un fichier contenant "data".

Si vous voulez trouver tous les fichiers ou répertoires qui contiennent exactement et seulement vos critères de recherche, utilisez l'option -b avecla commande locate, comme suit.

locate -b '\ mydata'

La barre oblique inversée dans la commande ci-dessus est un caractère de globalisation, qui fournit un moyen d'étendre les caractères génériques dans un nom de fichier non spécifique dans un ensemble de noms de fichiers spécifiques. Un caractère générique est un symbole qui peut être remplacé par un ou plusieurs caractères lorsque l'expression est évaluée. Les symboles génériques les plus courants sont le point d'interrogation( ?), Qui représente un seul caractère et l'astérisque( *), qui représente une chaîne de caractères contiguës. Dans l'exemple ci-dessus, la barre oblique inversée désactive le remplacement implicite de "mydata" par "* mydata *" pour ne générer que des résultats contenant "mydata".

La commande mlocate est une nouvelle implémentation de locate. Il indexe l'ensemble du système de fichiers, mais les résultats de la recherche incluent uniquement les fichiers auxquels l'utilisateur actuel a accès. Lorsque vous mettez à jour la base de données mlocate, elle conserve les informations d'horodatage dans la base de données. Cela permet à mlocate de savoir si le contenu d'un répertoire a changé sans en lire le contenu et rend les mises à jour de la base de données plus rapides et moins exigeantes sur votre disque dur.

Lorsque vous installez mlocate, le fichier binaire /usr/bin/ localise les modifications pour pointer sur mlocate. Pour installer mlocate, si ce n'est pas déjà inclus dans votre distribution Linux, tapez la commande suivante à l'invite.

sudo apt-get installer mlocate

REMARQUE: nous allons vous montrer une commande plus loin dans cet article qui vous permet de déterminer où se trouve l'exécutable d'une commande, s'il existe.

La commande mlocate n'utilise pas le même fichier de base de données que la commande locate standard. Par conséquent, vous pouvez créer manuellement la base de données en tapant la commande suivante à l'invite:

sudo /etc/cron.daily/ mlocate

La commande mlocate ne fonctionnera pas tant que la base de données n'est créée manuellement ou lorsque le script est exécuté à partir de cron.

Pour plus d'informations sur la commande locate ou mlocate, tapez man locate ou man mlocate dans une fenêtre Terminal et appuyez sur Entrée. Le même écran d'aide s'affiche pour les deux commandes.

Utilisation de la commande

La commande "which" renvoie le chemin absolu de l'exécutable qui est appelé lorsqu'une commande est émise. Ceci est utile pour trouver l'emplacement d'un exécutable pour créer un raccourci vers le programme sur le bureau, sur un panneau ou à un autre endroit dans le gestionnaire de bureau. Par exemple, en tapant la commande quel firefox affiche les résultats montrés dans l'image ci-dessous.

Par défaut, la commande which affiche uniquement le premier exécutable correspondant. Pour afficher tous les exécutables correspondants, utilisez l'option -a avec la commande:

qui -a firefox

Vous pouvez rechercher plusieurs exécutables en même temps, comme indiqué dans l'image suivante. Seuls les chemins vers les exécutables trouvés sont affichés. Dans l'exemple ci-dessous, seul l'exécutable "ps" a été trouvé.

REMARQUE: La commande which ne recherche que la variable PATH de l'utilisateur actuel. Si vous recherchez un exécutable uniquement disponible pour l'utilisateur root en tant qu'utilisateur normal, aucun résultat ne s'affichera.

Pour plus d'informations sur la commande which, tapez "man which"( sans les guillemets) à l'invite de commande dans une fenêtre Terminal et appuyez sur Entrée.

Utilisation de la commande Whereis

La commande whereis permet de savoir où se trouvent les fichiers binaires, source et man page d'une commande. Par exemple, en tapant whereis firefox à l'invite, les résultats s'affichent comme indiqué dans l'image suivante.

Si vous souhaitez afficher uniquement le chemin d'accès à l'exécutable et non les chemins d'accès aux pages source et man( ual), utilisez l'option -b. Par exemple, la commande whereis -b firefox affichera uniquement /usr/bin/ firefox comme résultat. C'est pratique car vous rechercheriez plus souvent le fichier exécutable d'un programme que vous ne rechercheriez les pages source et man de ce programme. Vous pouvez également rechercher uniquement les fichiers source( -s) ou uniquement les pages de manuel( -m).

Pour plus d'informations sur la commande whereis, tapez man whereis dans une fenêtre Terminal et appuyez sur Entrée.

Comprendre la différence entre la commande Whereis et la commande

La commande whereis vous montre l'emplacement des pages binaires, source et man pour une commande, alors que la commande which ne vous indique que l'emplacement du binaire pour la commande.

La commande whereis effectue une recherche dans une liste de répertoires spécifiques pour les fichiers binaires, source et man, tandis que la commande which recherche les répertoires répertoriés dans la variable d'environnement PATH de l'utilisateur actuel. Pour la commande whereis, la liste des répertoires spécifiques peut être trouvée dans la section FILES des pages man de la commande.

En ce qui concerne les résultats affichés par défaut, la commande whereis affiche tout ce qu'elle trouve alors que la commande which n'affiche que le premier exécutable trouvé.Vous pouvez changer cela en utilisant l'option -a, discutée plus tôt, pour la commande which.

Parce que la commande whereis utilise uniquement des chemins codés en dur dans la commande, vous ne pouvez pas toujours trouver ce que vous cherchez. Si vous recherchez un programme que vous pensez être installé dans un répertoire non répertorié dans les pages de manuel de la commande whereis, vous pouvez utiliser la commande which avec l'option -a pour rechercher toutes les occurrences de la commande dans le système.