Accueil
/
Tutoriels SSH
/
Comment rechercher des fichiers et des dossiers via SSH

Comment rechercher des fichiers et des dossiers via SSH

Dans certains cas, vous aurez besoin de trouver l’emplacement d’un fichier donné ou de rechercher un certain texte dans tous les fichiers d’un répertoire. SSH fournit deux commandes différentes, qui peuvent être utilisées pour accomplir cela. Pour rechercher l’emplacement d’un fichier, vous pouvez utiliser la commande find . Find est un outil très puissant et accepte différents arguments vous permettant de spécifier le terme recherché (ie rechercher par nom, par type ou même par date de modification).

Par exemple, pour rechercher un fichier nommé monFichier.txt dans le dossier actuel (et tous les sous-dossiers), vous devez utiliser la commande suivante:

 trouver . -name monFichier.txt

Si vous n’êtes pas sûr du nom du fichier ou si vous souhaitez qu’il corresponde à une partie du nom, vous pouvez utiliser un caractère générique:

 trouver . -name "monFichier*"

Si vous voulez lister uniquement les répertoires et ne pas inclure tous les fichiers dans le résultat:

 trouver . -type d

Ou si vous voulez filtrer uniquement les fichiers modifiés au cours des 2 derniers jours, vous devez utiliser:

 Recherche . -mtime -2

Vous pouvez aussi rechercher un texte donné dans le contenu des fichiers. La commande que vous devriez utiliser, dans ce cas, est grep . Grep est un outil très puissant et accepte différents arguments en ligne de commande. Pour une liste complète, il est recommandé de consulter les pages de manuel en saisissant man grep .

Vous trouverez ci-dessous un exemple d’utilisation de grep pour trouver un certain texte:

 grep « base de données » configuration.php

La commande ci-dessus indique à grep de rechercher la chaîne «  database  » dans le fichier configuration.php et d’afficher la ligne qui la contient. Si vous ne savez pas quel fichier contient le texte, vous pouvez utiliser:

 grep -r -H "base de données" *

grep aura une apparence récursive (option -r ) et fournira le résultat dans un format lisible par un humain ( option -H ) pour la chaîne « database » dans tous les fichiers (*) répertoire de travail courant.

Pour lister uniquement les noms de fichiers contenant la chaîne que vous recherchez mais omettre la ligne la contenant, vous pouvez utiliser l’argument -l :

 grep -l "base de données" *

Ceci affichera les noms de fichiers contenant le mot « database” , mais ne listera pas réellement la ligne le contenant.

Grep peut aussi être utilisé pour filtrer les résultats d’autres commandes. Par exemple, la ligne ci-dessous affichera uniquement le résultat configuration.php:

 ls -la | grep configuration.php

Dans de rares cas, find et grep peuvent s’avérer inutiles. Par exemple, pour trouver un certain fichier sur tout le serveur, il serait mieux d’utiliser une commande alternative – ou qui :

 où est perl

ou

 dont perl

L’exécution des commandes ci-dessus localisera le binaire perl et en affichera le(s) chemin(s) complet(s).

Partager cet article