Affichage des repertoires seulement

Résolu/Fermé
artagon7 Messages postés 415 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 11 février 2024 - 11 mai 2008 à 21:36
 dennys - 31 mars 2017 à 09:23
Bonjour,

Je veux afficher seulement les repertoires contenus dans un repertoire donne. J'ai lu le man de ls et ce que j'ai trouve c'est l'option -d mais ca ne fonctionne pas. Comment fait-on pour afficher uniquement les repertoires (de facon recursive)?

Merci
A voir également:

9 réponses

medem Messages postés 2 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 19 mai 2009 9
19 mai 2009 à 10:02
Salut !
Tu peux egalement utiliser "ls -d */"
ls -d : pour lui dire qu'il ne descend pas dans les sous répertoires
*/: pour lui dire qu'il affiche tous ceux qui se terminent par "/" qui sont uniquement les repertoires
+
12
artagon7 Messages postés 415 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 11 février 2024 7
1 juin 2009 à 22:25
C'est noté. Merci.
0
Merci. Utile et complet
0
marc[i1] Messages postés 2573 Date d'inscription vendredi 1 avril 2005 Statut Contributeur Dernière intervention 6 septembre 2008 382
12 mai 2008 à 00:03
peros je préfère tree pour ça.

tree -d repertoire/

4
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
11 mai 2008 à 23:43
Salut,
ls -lR | grep ^d 
ou
find . -type d -exec ls -ld {} \;   
--
106485010510997108
3
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
11 mai 2008 à 23:55
Salut,

Ou
ls -R | grep  '/$'
;-))
0
artagon7 Messages postés 415 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 11 février 2024 7
12 mai 2008 à 00:44
J'ai essaye vos trois commandes et c'est seulement la commande du "perlien" a lami20j qui a fonctionne, soit ls -lR | grep ^d.

Dans le cas de la commande proposee par jipicy ( ls -R | grep '/$' ), elle n'affiche rien tandis que la commande de marc[i1] ne fonctionne pas puisqu'il n'y a pas de commande tree dans mon shell!!! (j'ai verifie avec man). Dans le cas des deux dernieres commandes, ca depend sans doute de la distribution que l'on a.

Merci a vous trois, :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
12 mai 2008 à 09:15
La commande "tree" n'est pas installée par défaut, c'est pour ça que je ne l'ai pas proposée. Par contre je l'installe systématiquement sur mes systèmes... et le martien aussi apparemment ;-)

Quand à la commande "ls -R | grep '/$'", effectivement ça dépend des distributions et de la configuration de "ls" (alias pour être précis de la forme "alias ls='ls -F --color=auto'" pour Mandriva par exemple), donc il suffit de l'écrire avec un air patriotique pour qu'elle ait l'effet désirée :
ls -FR | grep '/$'
;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
12 mai 2008 à 09:48
;-))
0
marc[i1] Messages postés 2573 Date d'inscription vendredi 1 avril 2005 Statut Contributeur Dernière intervention 6 septembre 2008 382
12 mai 2008 à 11:45
« La commande "tree" n'est pas installée par défaut, c'est pour ça que je ne l'ai pas proposée. Par contre je l'installe systématiquement sur mes systèmes... et le martien aussi apparemment ;-) »

hihi ^^
0
artagon7 Messages postés 415 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 11 février 2024 7
26 mai 2008 à 01:15
Bonjour,

Oui, effectivement la commande ls -FR | grep '/$' fonctionne. Mais finalement ca ne donne pas, comme l'autre commande, un resultat tres pratique. Par exemple, j'ai le repertoire /Informatique :

/Informatique

../Linux
...../Fichiers_systemes
...../Pages_man

../Programmation
...../Langage_C
...../Scripts_bash

../Test
...../Test_1
...../Test_2
...../Test_3
...../Test_4



Si je fais la commande ls -FR | grep '/$' ca me donne :

$ ls -FR | grep '/$'
Linux/
Programmation/
Test/
Fichiers_systemes/
Pages_man/
Langage_C/
Scripts_bash/
Test_1/
Test_2/
Test_3/
Test_4/


Dans le cas present je peux quand meme m'y retrouver. Mais dans le cas ou je prends un repertoire plus important, je risque de ne plus m'y retrouver. Dans ce cas, est-il possible d'obtenir quelque chose qui ressemble a :

/Informatique

../Linux
...../Fichiers_systemes
...../Pages_man

../Programmation
...../Langage_C
... etc ...

Je crois que la commande de marc[i1] serait plus appropriee, en tout cas, c'est-ce que laisse sous-entendre le nom de la commande. Si la commande tree donne le resultat que je veux, j'aimerais l'installer. Comment fait-on pour installer tree?

Merci,
0
Il y a de plus simple et c'est le job de ls justement.
ls -d *
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
Modifié par lami20j le 30/11/2010 à 17:14
Salut,

Au moins tu as essayé?!
L'option -d n'a pas le rôle d'afficher que les répetoires mais
-d, --directory
afficher les noms de répertoires plutôt que leur contenu et ne pas déréférencer les liens symboliques



lami20j@debian-acer:~/div$ ls -l 
total 4 
drwxr-xr-x 2 lami20j lami20j 4096 30 nov.  17:09 aaa 
-rw-r--r-- 1 lami20j lami20j    0 30 nov.  17:09 toto.txt 
lami20j@debian-acer:~/div$ ls -d * 
aaa  toto.txt 
lami20j@debian-acer:~/div$ ls -d */ 
aaa/



L'option -d n'a pas le rôle d'afficher seulement les répertoires mais (man ls)
-d, --directory
afficher les noms de répertoires plutôt que leur contenu et ne pas déréférencer les liens symboliques

Voici ce qui se passe quand j'utilise -d avec -R
lami20j@debian-acer:~/div$ ls -lRd * 
drwxr-xr-x 2 lami20j lami20j 4096 30 nov.  17:11 aaa 
-rw-r--r-- 1 lami20j lami20j    0 30 nov.  17:09 toto.txt 
lami20j@debian-acer:~/div$ ls -lR * 
-rw-r--r-- 1 lami20j lami20j    0 30 nov.  17:09 toto.txt 

aaa: 
total 0 
-rw-r--r-- 1 lami20j lami20j 0 30 nov.  17:11 zzz.png 
lami20j@debian-acer:~/div$ 

ou
lami20j@debian-acer:~/div$ ls -l aaa 
total 0 
-rw-r--r-- 1 lami20j lami20j 0 30 nov.  17:11 zzz.png 
lami20j@debian-acer:~/div$ ls -ld aaa 
drwxr-xr-x 2 lami20j lami20j 4096 30 nov.  17:11 aaa 
lami20j@debian-acer:~/div$ 
0
il y a plus simple ! que les repertoires qui contient des fichiers '.' donc
echo /*/.
0
Oui en effet.
L'option --directory est plus subtil que je ne le croyais.

Merci pour cette précision.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
26 mai 2008 à 01:39
Salut,

comme quoi, depuis le début tu devras nous dire ce que tu veux obtenir comme affichage ;-)
en ce cas, effectivement la commande donnée par marc[i1] est la solution

si je n'ai pas oublié tu es sous ubuntu
sudo aptitude install tree
-1
artagon7 Messages postés 415 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 11 février 2024 7
26 mai 2008 à 03:02
Oui, lami20j j'aurais du preciser avant. Je retiens la lecon. La commande tree donne bien ce que je voulais.

Merci et salutations, :-)
0