Salut, J'avais besoin de faire du comptage de fichiers et de répertoires, mais je n'ai rien trouvé qui le fasse. Bon, j'ai fais mon script, je suis content, je sais bien compter, et en plus je manie à merveille la récursivité. Ceci dit, est-ce qu'il existe une commande qui liste le nombre de fichier et sous-répertoire ? (genre j'aurais manqué une option de du, ou de ls ?) Merci Jeremy -- Linux Registered User #317862 I may not be able to read doc xls or ppt format. Please send me pdf or ps or simple text files. "Why is MS raising prices on you ? Because they can !" "To take away that power from them, use GNU/Linux !"
Le ven 09 septembre, Jeremy Monnet a écrit :
Salut,
J'avais besoin de faire du comptage de fichiers et de répertoires, mais je n'ai rien trouvé qui le fasse. Bon, j'ai fais mon script, je suis content, je sais bien compter, et en plus je manie à merveille la récursivité. Ceci dit, est-ce qu'il existe une commande qui liste le nombre de fichier et sous-répertoire ? (genre j'aurais manqué une option de du, ou de ls ?)
euh, un bete find <path> -type f -print | wc -l ?
Le Vendredi 9 Septembre 2005 00:04, Bruno Bonfils a écrit :
Le ven 09 septembre, Jeremy Monnet a écrit :
Salut,
J'avais besoin de faire du comptage de fichiers et de répertoires, mais je n'ai rien trouvé qui le fasse. Bon, j'ai fais mon script, je suis content, je sais bien compter, et en plus je manie à merveille la récursivité. Ceci dit, est-ce qu'il existe une commande qui liste le nombre de fichier et sous-répertoire ? (genre j'aurais manqué une option de du, ou de ls ?)
euh, un bete find <path> -type f -print | wc -l ?
Bah ouais, un bête find .... moi qui cherchais du coté de du, ls, etc et je suis passé à coté du find ! Merci bien ! :-) Jeremy -- Linux Registered User #317862 I may not be able to read doc xls or ppt format. Please send me pdf or ps or simple text files. "Why is MS raising prices on you ? Because they can !" "To take away that power from them, use GNU/Linux !"
Jeremy Monnet a écrit :
Ceci dit, est-ce qu'il existe une commande qui liste le nombre de fichier et sous-répertoire ? (genre j'aurais manqué une option de du, ou de ls ?)
avec zsh (et bash, je crois) # chercher tous les fichiers de tous les repertoires, stoquer dans un # tableau a ( c'est ** qui provoque la recursivité ) a=(**/*) # afficher le nombre d'elements de ce tableau a echo $#a ces 2 lignes doivent pouvoir s'ecrire en une. de meme, compter uniquement les images : **/*(jpg|jpeg|png) compter uniquement les fichier appartenant a john : **/*(u[john]) cordialement mc
Le Vendredi 9 Septembre 2005 00:25, Marc Chantreux a écrit :
Jeremy Monnet a écrit :
Ceci dit, est-ce qu'il existe une commande qui liste le nombre de fichier et sous-répertoire ? (genre j'aurais manqué une option de du, ou de ls ?)
avec zsh (et bash, je crois)
# chercher tous les fichiers de tous les repertoires, stoquer dans un # tableau a ( c'est ** qui provoque la recursivité )
a=(**/*)
Alors sous bash visiblement, ca n'incite qu'a aller voir dans les sous-repertoires directs. Par exemple si rep/sous-rep1/fichier1.jpeg rep/sous-rep2/fichier2.jpeg rep/sous-rep3/sous-rep4/sous-rep5/fichier3.jpeg le resultat de ls **/*jpeg ne me donne que les fichiers 1 et 2, mais pas le 3. Donc récursivité limitée sous bash :-/ Jeremy -- Linux Registered User #317862 I may not be able to read doc xls or ppt format. Please send me pdf or ps or simple text files. "Why is MS raising prices on you ? Because they can !" "To take away that power from them, use GNU/Linux !"
Jeremy Monnet a écrit :
Donc récursivité limitée sous bash :-/
je ne sais pas : bash ne disposais pas encore de ca quand je suis passé a zsh (ou alors, je l'ignorais). mais j'ose esperer que c'est simplement une difference syntaxique, genre **/** ? sous zsh, tu obtiens le comportement decrit par : */*, ce qui me semble logique. maintenant, le GNU a quand meme reussi a nous pondre emacs ... alors pour la logique, on repassera :-) mc
Le ven 09 septembre, Marc Chantreux a écrit :
Jeremy Monnet a écrit :
Donc récursivité limitée sous bash :-/
je ne sais pas : bash ne disposais pas encore de ca quand je suis passé a zsh (ou alors, je l'ignorais).
Oué non ca n'existait effectivement pas à l'époque, le plus drôle dans l'histoire je trouve c'est qu'ils sont meme pas foutus de faire quelque chose qui fonctionne bien, un peu comme la complétion ;p
Bruno Bonfils a écrit :
Oué non ca n'existait effectivement pas à l'époque, le plus drôle dans l'histoire je trouve c'est qu'ils sont meme pas foutus de faire quelque chose qui fonctionne bien, un peu comme la complétion ;p
ben perso, le GNU ne m'amuse plus du tout : ils me sortent par les trous de nez. Ils ont quelques produits phares dont la qualité est idéniable (gcc, ...) mais ils ont aussi beaucoup de produits mediocres qui sont acceptés comme standard de fait par la communauté parceque c'est GNU. de plus, je n'aime pas leur croyance selon laquelle tout le monde libre utilise le GNU way of live (et sa toute relative liberté). ls, par exemple, est compilé par defaut avec l'option --dired (comme si il etait naturel que tout le monde libre utilise l'editeur de St RMS). de plus en plus de programmes GNU génerent automatiquement les sorties qui font bien pour les completions ... bash. en option ? bien sur que non ! Cachez ces ko de binaire que je ne saurais voir ! Ils me font penser a cette boite qui ne comprend pas que tout le monde n'utilise pas encore son OS et son navigateur. cordialement mc
Le Vendredi 9 Septembre 2005 15:52, vous avez écrit :
Jeremy Monnet a écrit :
Donc récursivité limitée sous bash :-/
je ne sais pas : bash ne disposais pas encore de ca quand je suis passé a zsh (ou alors, je l'ignorais).
mais j'ose esperer que c'est simplement une difference syntaxique, genre **/** ?
Je mets a la fin du mail le résultat de ls **/** et ls **/**/** Bon, le moins qu'on puisse dire c'est que non, la récursivité en bash, ca n'a pas le même sens qu'en zsh :-/ Bon, je vais quand même chercher pour la forme, mais zsh est en train de s'installer, et je vais probablement tenter mes prochains scripts avec, pour voir la différence. Jeremy -- Linux Registered User #317862 I may not be able to read doc xls or ppt format. Please send me pdf or ps or simple text files. "Why is MS raising prices on you ? Because they can !" "To take away that power from them, use GNU/Linux !" Resultat des ls : jems@debian:~/gobelins$ ls **/** gobelins/AUTHORS gobelins/docs: gameover rmll tx_p2005 gobelins/exec: _config mkexecenv gobelins/src: cmdline common error event gobelins legob luagob protocol SConstruct socket useless jems@debian:~/gobelins$ ls **/**/** gobelins/exec/mkexecenv gobelins/src/SConstruct gobelins/docs/gameover: edition-2004 edition-2005 logo.eps logo.jpg gobelins/docs/rmll: 2005 gobelins/docs/tx_p2005: abstract.tex eps graphes.tex images rapport.tex soutence_guidelines.pdf svg code.tex garde.tex graphs Makefile soutenance.tex soutence_guidelines.sxw template.tex gobelins/exec/_config: client1 client2 server1 server2 gobelins/src/cmdline: include lib obj src gobelins/src/common: include gobelins/src/error: include lib obj src gobelins/src/event: include lib obj src gobelins/src/gobelins: bin etc include obj src gobelins/src/legob: include lib obj src gobelins/src/luagob: client common init.lua server gobelins/src/protocol: include lib obj src gobelins/src/socket: include lib obj src gobelins/src/useless: include lib obj README src
On 2005-09-09 18:24:39 +1000, Jeremy Monnet wrote:
Je mets a la fin du mail le résultat de ls **/** et ls **/**/**
Il semble qu'en bash, ls **/**/** et ls */*/* soient équivalents, i.e. pas de récursivité en bash. -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / SPACES project at LORIA
Vincent Lefevre a écrit :
On 2005-09-09 18:24:39 +1000, Jeremy Monnet wrote:
Je mets a la fin du mail le résultat de ls **/** et ls **/**/**
Il semble qu'en bash, ls **/**/** et ls */*/* soient équivalents, i.e. pas de récursivité en bash.
Tu peux même faire ls ***************/************************** ça ne changera rien. Nx*=* pj -- Sparx Inc. 34 rue du Sentier 75002 Paris Tel. +33 (0) 1 44 34 29 21 Std +33 (0) 1 44 34 29 29 Fax +33 (0) 1 55 73 17 07 http://www.sparx.com
Le Vendredi 9 Septembre 2005 21:54, Vincent Lefevre a écrit :
On 2005-09-09 18:24:39 +1000, Jeremy Monnet wrote:
Je mets a la fin du mail le résultat de ls **/** et ls **/**/**
Il semble qu'en bash, ls **/**/** et ls */*/* soient équivalents, i.e. pas de récursivité en bash.
Oui, c'est ce que je voulais dire quoi avec le résultat assez parlant de lui-même je pense. C'est pourquoi j'ai changé mon shell pour zsh cet après-midi, et que j'aurais certainement un peu besoin de vous dans quelques temps ;-) Jeremy PS: ceci dit, on arrive a vivre sans la récursivité du shell, on apprend à faire un peu plus de choses par soi-même, enfin je pense ? -- Linux Registered User #317862 I may not be able to read doc xls or ppt format. Please send me pdf or ps or simple text files. "Why is MS raising prices on you ? Because they can !" "To take away that power from them, use GNU/Linux !"
Marc Chantreux a écrit :
Jeremy Monnet a écrit :
Donc récursivité limitée sous bash :-/
je ne sais pas : bash ne disposais pas encore de ca quand je suis passé a zsh (ou alors, je l'ignorais).
Bah si. *=* sous bash. donc **/* = */*, ce qui légitimise la profondeur de 1 niveau de ss-reps. Autrement dit, **/* n'a pas de signification sous bash, même s'il est fortuitement et syntactiquement correct. La récursion n'existe quasiment pas dans bash, à part dans les fonctions.
mais j'ose esperer que c'est simplement une difference syntaxique, genre **/** ?
sous zsh, tu obtiens le comportement decrit par : */*, ce qui me semble logique. maintenant, le GNU a quand meme reussi a nous pondre emacs ... alors pour la logique, on repassera :-)
mc _______________________________________________ Shell mailing list Shell@lists.asyd.net http://lists.asyd.net/mailman/listinfo.cgi/shell
+ pj -- Sparx Inc. 34 rue du Sentier 75002 Paris Tel. +33 (0) 1 44 34 29 21 Std +33 (0) 1 44 34 29 29 Fax +33 (0) 1 55 73 17 07 http://www.sparx.com
participants (5)
-
Bruno Bonfils
-
Jeremy Monnet
-
Marc Chantreux
-
Philippe Jacquot
-
Vincent Lefevre