Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/09/2011, à 21:26

va2bdc

lister les sous répertoires avec ls

bonjour,

J'essaie de faire un listing d'un répertoire avec ses sous dossiers, mais je n'y arrive pas. Je fais la commande du style
ls *.avi >> monlisting
il ne m'affiche que les fichiers du dossier courant et non les sous répertoires.Connaissez-vous un options sous ls pour lister les sous répertoires aussi
merci de me répondre si vous savez

Dernière modification par va2bdc (Le 19/09/2011, à 21:27)

Hors ligne

#2 Le 19/09/2011, à 21:38

Amarokk

Re : lister les sous répertoires avec ls

Installe le paquet "tree" et lance la commande du même nom smile
Je pense pas que ls le prenne en charge, enfin j'ai pas cherché mais j'imagine que toi, oui wink


Ubuntuboy since 2007

Hors ligne

#3 Le 19/09/2011, à 21:38

Pylades

Re : lister les sous répertoires avec ls

Salut,

ls -R

?


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#4 Le 19/09/2011, à 21:41

Amarokk

Re : lister les sous répertoires avec ls

Ah bah oui. hmm
J'imagine que dans ce  cas là, un petit RTFM s'impose? big_smile


Ubuntuboy since 2007

Hors ligne

#5 Le 19/09/2011, à 21:49

va2bdc

Re : lister les sous répertoires avec ls

Installe le paquet "tree" et lance la commande du même nom smile
Je pense pas que ls le prenne en charge, enfin j'ai pas cherché mais j'imagine que toi, oui wink

mais tu peux pas faire tree *.avi >>listing plutôt ça marche mais avec des erreurs d'ouverture de dossiers

Hors ligne

#6 Le 19/09/2011, à 21:51

va2bdc

Re : lister les sous répertoires avec ls

non,à moins d'une grosse erreur de ma part ls -R *.avi>>listing ne marche pas. j'ai essayé aussi l'options -R
mais rien je ne comprends pas pourquoi. Je vais encore essayer...

Hors ligne

#7 Le 19/09/2011, à 22:26

va2bdc

Re : lister les sous répertoires avec ls

en faites LS --recursive ou -R marche pour tous les fichiers mais pas par la suite "ls -R *.avi >> listing
Je ne sais pas pourquoi.
Merci encore...

Hors ligne

#8 Le 19/09/2011, à 22:32

maman

Re : lister les sous répertoires avec ls

salut,
j'aurais plutôt fait

du ton_repertoire > ma_liste

La commande du est expliquée ici.

@+


90% of teens today would die if Facebook was completely destroyed. If you are one of the 10% that would be laughing, copy and paste this to your signature.

Hors ligne

#9 Le 19/09/2011, à 22:36

Pylades

Re : lister les sous répertoires avec ls

Ce que tu veux c’est :

find -name '*.avi'

Non ?


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#10 Le 19/09/2011, à 22:36

kamui57

Re : lister les sous répertoires avec ls

essaie (edit : mieux ↑↑↑)

ls -R -1|grep -E ".avi$" > listing

Dernière modification par kamui57 (Le 19/09/2011, à 22:38)


Quand le dernier arbre aura été abattu, et le dernier animal exterminé, les hommes se rendront compte que l'argent ne se mange pas (proverbe indien)
Toshiba Satellite L655 4 Go RAM, Archlinux Gnome-shell,LXDE / W7
Toshiba Satellite M30 512 Mo RAM, Archlinux Gnome 3 restreint / Crunchbang LXDE
https://help.ubuntu.com/community/Pastebinit pour poster du texte sur internet en console

Hors ligne

#11 Le 19/09/2011, à 22:38

Amarokk

Re : lister les sous répertoires avec ls

ls -R |egrep '(^\.|*.avi)' > listing

Par contre, ça t'affiche même les répertoires où il ne trouve pas d'avi.

EDIT: damn, je me suis fait doubler! big_smile

Dernière modification par Amarokk (Le 19/09/2011, à 22:38)


Ubuntuboy since 2007

Hors ligne

#12 Le 19/09/2011, à 22:42

va2bdc

Re : lister les sous répertoires avec ls

EXCELLENT vous êtes au top! ça marche avec ls -R |egrep '(^\.|*.avi)' > listing
merci

et encore mieux avec ls -R -1|grep -E ".avi$" > listing
merci

Dernière modification par va2bdc (Le 19/09/2011, à 22:58)

Hors ligne

#13 Le 21/09/2011, à 23:27

Postmortem

Re : lister les sous répertoires avec ls

Salut,
Une autre solution :

shopt -s globstar
ls **/*.avi

EDIT : les solutions à base de grep ou egrep ne sont pas bonnes :

$ ls -R
.:
tata.txt  test1  titi.avi  totoavi

./test1:
tata.txt  titi.avi  totoavi

$ ls -R | egrep '(^\.|*.avi)'
.:
titi.avi
totoavi
./test1:
titi.avi
totoavi

$ ls -R -1|grep -E ".avi$"
titi.avi
totoavi
titi.avi
totoavi

Dernière modification par Postmortem (Le 21/09/2011, à 23:51)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#14 Le 22/09/2011, à 01:12

Postmortem

Re : lister les sous répertoires avec ls

va2bdc a écrit :

en faites LS --recursive ou -R marche pour tous les fichiers mais pas par la suite "ls -R *.avi >> listing
Je ne sais pas pourquoi.
Merci encore...

ls -R *.avi ne donne que tous les fichiers ".avi" présents dans le répertoire courant car le "*.avi" est remplacé par la liste des fichiers se terminant par ".avi" qui se trouve dans le répertoire courant ;  la commande "ls" est ensuite exécutée.
Par exemple, si tu te trouves dans un répertoire et que celui-ci contient un fichier film.avi, un fichier film2.avi puis des sous-repertoires contenant d'autres fichiers ".avi", la commande ls -R *.avi est "transformée" en ls -R film.avi film2.avi et donc, "ls" ne liste que ces 2 fichiers.


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#15 Le 22/09/2011, à 07:41

Levi59

Re : lister les sous répertoires avec ls

grep fonctionne:

ls -R -1 | grep "\.avi$"

Hors ligne

#16 Le 22/09/2011, à 10:08

Postmortem

Re : lister les sous répertoires avec ls

Levi59 a écrit :

grep fonctionne:

ls -R -1 | grep "\.avi$"

J'indiquais que les commandes à base de grep données avant la tienne n'étaient pas bonnes.
La tienne fonctionne sauf dans le cas, certes tordu, où un nom de fichier contiendrait un retour à la ligne (d'ailleurs, me suis toujours demandé pourquoi le retour à la ligne était autorisé dans les noms de fichier !?!)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#17 Le 22/09/2011, à 11:12

Levi59

Re : lister les sous répertoires avec ls

Un retour à la ligne? Bizarre en effet...

la commande find devrait résoudre ton problème si l'on ne peut utiliser glob:

find . -maxdepth 1 -regex '.*\.avi$'

Hors ligne

#18 Le 22/09/2011, à 11:26

pingouinux

Re : lister les sous répertoires avec ls

Ou bien (pour descendre toute l'arborescence) :

find . -iname \*.avi

Hors ligne