Obtenir une liste de tous les fichiers du dossier et du sous-dossier d'un fichier

28

Comment obtenir une liste de tous les fichiers d'un dossier, y compris tous les fichiers de tous les sous-dossiers et placer la sortie dans un fichier?

Namshum
la source

Réponses:

39

Vous pouvez le faire en ligne de commande, en utilisant le commutateur -R (récursif), puis en redirigeant la sortie vers un fichier:

ls -R > filename1

cela fera un fichier appelé filename1 dans le répertoire courant, contenant une liste complète des répertoires du répertoire courant et de tous les sous-répertoires qui s'y trouvent.

Vous pouvez lister des répertoires autres que celui en cours en spécifiant le chemin complet, par exemple:

ls -R /var > filename2

listera tout dans et sous / var et mettra les résultats dans un fichier dans le répertoire courant appelé filename2. Cela fonctionne sur les répertoires appartenant à un autre utilisateur, y compris root, tant que vous disposez d'un accès en lecture pour les répertoires.

Vous pouvez également répertorier les répertoires auxquels vous n'avez pas accès tels que / root à l'aide de la commande sudo. par exemple:

sudo ls -R /root > filename3

Répertorierait tout dans / root, en plaçant les résultats dans un fichier appelé filename3 dans le répertoire courant. Puisque la plupart des systèmes Ubuntu n'ont rien dans ce répertoire, filename3 ne contiendra rien, mais cela fonctionnerait si c'était le cas.

fabricant4
la source
Peut-être que le fait de dire à la personne de commencer par le répertoire dans le répertoire pourrait être ajouté pour répondre.En outre, cela fonctionne très bien si je possède le répertoire, mais si j'essaye dans un répertoire dit appartenir à root, il ne l'a pas fait.J'ai obtenu l'autorisation habituelle refusée et sudo suivi de votre commande a également donné l'autorisation refusée. Y a-t-il une solution sans se connecter en tant que root?
damien
Eh bien, j'ai dit le répertoire "actuel". L'utilisation correcte du CD pourrait faire l'objet d'une autre question, et je suis sûr qu'elle l'a été. Vous pouvez répertorier les répertoires appartenant à root tant que vous y avez accès en lecture. Les répertoires appartenant à root auxquels l'utilisateur a un accès en lecture peuvent être répertoriés avec ls -R. Il est difficile d'imaginer pourquoi vous souhaitez répertorier les répertoires appartenant à root auxquels vous n'avez pas accès en lecture, mais sudo fonctionne en effet si vous donnez le chemin complet. J'ajoute des exemples pour les deux, mais en excluant l'utilisation du CD.
fabricator4
8

arbre Installer l'arborescence

Une alternative à récursif lsest l'outil de ligne de commande treequi comprend de nombreuses options pour personnaliser le format de la sortie affichée. Voir la page de manuel pour l'arborescence pour toutes les options.

Takkat
la source
7

Utilisez simplement la findcommande avec le nom du répertoire. Par exemple, pour voir les fichiers et tous les fichiers des dossiers de votre répertoire personnel, utilisez

find ~

Consultez la page de manuel de recherche de la findcommandeIcône de page de manuel

Vérifiez également la page d'information GNU en utilisant la info findcommande dans un terminal.

Anwar
la source
C'est l'approche la plus puissante. findpossède de nombreux paramètres pour personnaliser le format de sortie et la sélection de fichiers.
pauljohn32
C'est la meilleure approche à mon avis. Simple et pratique. Pourrait aussi faire $ find . > outputs'il y a beaucoup de répertoires.
felippe
4

Également:

gvfs-tree /path/to/folder/

vous donnera la même chose que l'arbre en utilisant d'autres caractères pour les lignes.

tree -a

pour afficher également les fichiers cachés

tree -i

pour ne pas afficher les lignes

Pili Garcia
la source
1
  1. Accédez au dossier dont vous souhaitez obtenir une liste de contenu.
  2. Sélectionnez les fichiers que vous souhaitez dans votre liste ( Ctrl+ Asi vous voulez le dossier entier).
  3. Copiez le contenu avec Ctrl+ C.
  4. Ouvrez gedit et collez le contenu à l'aide de Ctrl+ V. Il sera collé sous forme de liste et vous pourrez ensuite enregistrer le fichier.

Cette méthode n'inclura pas le sous-dossier, cependant le contenu.

Roy van Arem
la source
1

Vous pouvez également utiliser l'équivalent GUI de la treesuggestion de Takkat qui est Baobab . Il est utilisé pour afficher les dossiers et sous-dossiers, souvent dans le but d'analyser l'utilisation du disque. Vous pouvez l'avoir déjà installé si vous utilisez un bureau GNOME (il est souvent appelé analyseur d'utilisation du disque).

sudo apt-get install baobab

Vous pouvez sélectionner un dossier et également afficher tous ses sous-dossiers, tout en obtenant la taille des dossiers et leur contenu comme le montre la capture d'écran ci-dessous. Vous cliquez simplement sur la petite flèche vers le bas pour afficher un sous-dossier dans un dossier. Il est très utile pour obtenir un aperçu rapide de ce que vous avez dans vos dossiers et peut produire des listes visibles, mais pour le moment, il ne peut pas les exporter vers un fichier. Cependant, il a été demandé en tant que fonctionnalité sur Launchpad . Vous pouvez même l'utiliser pour afficher le système de fichiers racine si vous utilisez gksudo baobab.

(Vous pouvez également obtenir une liste de fichiers avec leurs tailles en utilisant ls -shR ~/myfolderpuis l'exporter vers un fichier.)

Entrez la description de l'image ici

Peter Mortensen
la source
L'OP voulait que les résultats soient dans un fichier, probablement pour en faire autre chose. Bien que le Baobab soit un bon outil, il ne semble pas répondre aux exigences de la question initiale du PO.
fabricator4
@ fabricator4 J'ai également ajouté l'option ls, car baobab ne peut pas actuellement afficher une liste.