43 votes

Comment lister tous les fichiers dans un arbre (un répertoire et ses sous-répertoires) ?

Pour une tâche, j'ai besoin de lister tous les fichiers dans un arbre (un répertoire, tous ses sous-répertoires, tous les sous-répertoires de ces derniers, etc.).

Je préférerais les voir dans Nautilus ou Krusader, mais une solution en ligne de commande est également intéressante (dans ce cas, j'aurai besoin des noms complets des fichiers, de leurs tailles et de leurs heures de modification).

39voto

ColinYounger Points 151

arbre sera très pratique pour vous.

sudo apt-get install tree

utilisant arbre chemin_du_fichier pour lister les fichiers.

27voto

Mufaka Points 54
ls -alR

C'est probablement la méthode la plus simple. Je suis en train de pirater un script find pour vous donner un peu plus de contrôle.

12voto

Mufaka Points 54
find /chemin/ -printf "%TY-%Tm-%Td\t%s\t%p\n"

Vous pouvez jouer avec le format printf autant que vous le souhaitez. Cela vous donne une excellente opportunité d'obtenir les choses formatées comme vous en avez besoin, ce qui est inestimable si vous utilisez la sortie dans une autre application.

Plus: http://linux.about.com/od/commands/l/blcmdl1_find.htm

Pour une meilleure lisibilité, vous pouvez tout passer par la commande column et elle redimensionnera automatiquement les choses pour qu'elles s'alignent.

find /chemin/ -printf "%TY-%Tm-%Td\t%s\t%p\n" | column -t

4voto

Will Points 141

Comme l'a répondu Oli, find vous permettra de rechercher dans l'intégralité de l'arborescence du répertoire :

find /chemin/ -printf "%TY-%Tm-%Td\t%s\t%p\n"

# Où %TY affichera l'année de la dernière modification sur 4 chiffres
#       %Tm affichera le mois de la dernière modification sur 2 chiffres
#       %Td affichera le jour de la dernière modification sur 2 chiffres
#       %s affiche la taille du fichier en octets
#       %p affiche le chemin complet du fichier

Vous voudrez peut-être aussi utiliser l'option -type f pour limiter les résultats aux fichiers uniquement. Si vous souhaitez faire correspondre un motif de nom de fichier, vous voudrez utiliser les options -name ou -iname (correspondance sensible à la casse et insensible à la casse, respectivement). Passez en revue la page de manuel de find - il existe un nombre substantiel d'options que vous pouvez utiliser pour affiner votre recherche.

Et juste comme une information complémentaire, si vous vous attendez à ce que plusieurs écrans de données vous soient renvoyés, n'oubliez pas de passer vos résultats à travers less.

@Oli : +1 J'ai également appris quelque chose de nouveau - column. Je n'avais jamais utilisé ça auparavant.

4voto

8128 Points 28272

ls est la commande standard pour lister les fichiers dans Ubuntu et d'autres systèmes d'exploitation Linux et Unix. ls est particulièrement utile à apprendre car il est installé sur tous les systèmes Unix que vous rencontrerez. Par défaut, son exécution affiche uniquement les fichiers du répertoire courant.

Cependant, le -R 'drapeau' est l'option récursive (notez la majuscule R, pas la minuscule r) qui vous montrera également tous les sous-répertoires.

Vous avez également demandé des "détails" - pour cela, vous voulez le drapeau -l (c'est un L en minuscule, pas le chiffre un). Sachez que cela vous donne des informations sur les autorisations de fichiers ainsi que la taille du fichier, les informations de date/heure et le nom du fichier.

Si vous souhaitez également afficher les fichiers/dossiers cachés (équivalent de Ctrl+H dans Nautilus), ajoutez alors le drapeau -a 'all'.

Vous pouvez fusionner les drapeaux ensemble, pour obtenir quelque chose comme :

ls -lR

Si vous exécutez cela sur un dossier de taille décente, vous constaterez que cela produit une sortie très longue qui défile rapidement sur votre écran. Pour contourner cela, vous pouvez 'rediriger' la sortie de ls à travers un programme appelé less (le nom est une parodie du similaire more qui existait avant mais qui a plus de fonctionnalités).

ls -lR | less

Cela vous permettra d'utiliser les touches fléchées haut/bas, ainsi que PageUp/Down pour parcourir la sortie à une vitesse plus confortable.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X