Rechercher et lister les fichiers cachés sous Linux
Qu'avons-nous dans la boîte ?
Sous Linux, la commande find est très pratique et elle le montre une fois de plus lorsqu’il s’agit de rechercher et lister les fichiers cachés sur une machine, avec récursivité. En spécifiant une racine qui sert de point de départ pour la recherche, nous allons pouvoir rechercher tous les fichiers cachés, ou tous les dossiers cachés, car cela fonctionne pour les deux types d’éléments.
Aujourd’hui, nous allons répondre à plusieurs questions : Comment lister récursivement tous les fichiers et répertoires cachés ? Comment enregistrer le résultat dans un fichier texte ? Quelles commandes pouvons-nous utiliser ?
Petit rappel avant d’aller plus loin : les fichiers et les dossiers cachés sont identifiables facilement car le nom commence par un point. C’est comme ça sur tous les systèmes basés sur Unix / Linux. A titre d’exemple, on peut citer le répertoire « .git » qui est présent dans le répertoire d’un projet initialisé avec Git.
Remarque : toutes les commandes utilisées dans ce tutoriel sont des commandes natives sous Linux.
1. Voir les fichiers cachés avec find
La commande find accepte l’option « -type » qui sert à préciser le type d’élément, en l’occurrence ici les fichiers, donc le type « f« . Pour cette recherche, nous ciblons les éléments dont le nom commence par « .* », c’est-à-dire un point suivi de n’importe quelle chaîne de caractères. La commande find va rechercher dans tous les sous-dossiers à partir de la racine spécifiée, ce qui permet d’effectuer une recherche avec récursivité.
find /etc/git/projet1/ -type f -name ".*" -ls
Un fichier caché nommé « .secret » est présent dans mon dossier cible : la commande find fonctionne très bien et elle me retourne seulement le(s) élément(s) masqué(s).
Pour obtenir la liste des résultats avec le chemin complet vers chaque fichier, on peut utiliser « -print » à la place de « -ls » :
find /etc/git/projet1/ -type f -name ".*" -print
Dans ce cas, la commande me retourne :
/etc/git/projet1/.secret
Pour stocker le résultat dans un fichier de la machine, on peut utiliser le redirecteur habituel en précisant le chemin vers un fichier de sortie :
find /etc/git/projet1/ -type f -name ".*" -ls > /home/tutobox/resultat.txt
2. Voir les dossiers cachés avec find
Dans le même esprit et simplement en adaptant le type donc en basculant sur « -type d », on peut rechercher les répertoires cachés. Voici un exemple :
find /etc/git/projet1/ -type d -name ".*" -ls
Dans ce cas, les fichiers cachés ne sont pas retournés car le fichier « .secret » n’est pas dans la liste des résultats. Par contre, le répertoire « .git » de ma machine Linux est bien là quant à lui.
3. Avec la commande ls, est-ce possible ?
Avec la commande ls, incontournable sur Linux, on peut aussi obtenir la liste des fichiers et dossiers cachés. Je vous rappelle que cette commande sert à lister le contenu d’un répertoire et d’obtenir des informations sur les propriétés des éléments, notamment les droits.
Tout d’abord, en ajoutant l’option « -a » ou « -A » qui sert à lister tous les éléments, aussi bien les éléments visibles que les éléments masqués. Voici un exemple :
ls -a
ou :
ls -a /etc/git/projet1/
L’inconvénient, c’est que la commande retourne tous les éléments, et pas seulement ceux qui sont cachés. En utilisant « grep » en complément, on peut filtrer grâce à une regex (expression régulière) : on recherche la présence d’un « . » au tout début du nom.
ls -a | grep "^."
Cette commande est pratique pour rechercher dans le dossier courant, contrairement à find qui vise plus large.
4. Conclusion
Suite à la lecture de cet article de la boîte à tutoriels, vous êtes en mesure de rechercher et lister les fichiers cachés sous Linux, que ce soit sur Debian, Ubuntu, Kali Linux, Rocky Linux, etc… Ces commandes très utiles contiennent de nombreuses options que vous pouvez explorer en regardant l’aide.
Ressources :