Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Compter les fichier trouves par find

132 réponses
Avatar
romer
Hi,
Cette simple commande du terminal :
find . -name *.pdf
trouve tous les fichiers terminées par .pdf dans le dossier utilisateur.
On en trouve beaucoup. J'aimerais en connaître le nombre présent dans ce
dossier.
Toute recherche sur le web donne beaucoup de résultats mais jamais le nb
de fichiers trouvés.
Il doit falloir faire une boucle qui compte et additionne les fichiers -
mais je ne vois pas bien comment.

--
A+
Romer

10 réponses

1 2 3 4 5
Avatar
pehache
Le 24/04/2020 à 12:19, Bernd a écrit :
Hi,
Cette simple commande du terminal :
find . -name *.pdf
trouve tous les fichiers terminées par .pdf dans le dossier utilisateur.
On en trouve beaucoup. J'aimerais en connaître le nombre présent dans ce
dossier.
Toute recherche sur le web donne beaucoup de résultats mais jamais le nb
de fichiers trouvés.
Il doit falloir faire une boucle qui compte et additionne les fichiers -
mais je ne vois pas bien comment.

find . -name "*.pdf" | wc -l
"wc" compte des caractères ou (comme ici avec -l) des lignes.
--
- "...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes." (ST sur fr.bio.medecine)
- "Je suis ATARIste, et j'ai bien l'intention que l'on me respecte ici."
(FLC sur fr.comp.sys.atari)
Avatar
romer
pehache wrote:
Cette simple commande du terminal :
find . -name *.pdf
trouve tous les fichiers terminées par .pdf dans le dossier utilisateur.
On en trouve beaucoup. J'aimerais en connaître le nombre présent dans ce
dossier.
Toute recherche sur le web donne beaucoup de résultats mais jamais le nb
de fichiers trouvés.
Il doit falloir faire une boucle qui compte et additionne les fichiers -
mais je ne vois pas bien comment.

find . -name "*.pdf" | wc -l
"wc" compte des caractères ou (comme ici avec -l) des lignes.

Cela donne le nb de dossiers contenus dans le répertoire de départ : la
commande en trouve 14. (de Applications -> vidéos). Ce qui n'est pas le
nb de fichiers .pdf.
J'ai fini par trouver une formule qui comporte bien une boucle :
for dossier in 'find /var -type d' ; do NBF='find $dossier -type f -name
* | wc -l'; echo '$dossier:' $NBF; done
Je l'adapte à ma recherche :
for dossier in 'find . -name *.pdf' ; do nbf='find $dossier -type f
-name * | wc -l'; echo '$dossier:' $nbf; done
Mais là on obtient en résultat :
$dossier: find $dossier -type f -name * | wc -l
Il y a une erreur quelque part.
Faut adapter mais je ne vois pas bien comment ?
--
A+
Romer
Avatar
josephb
Bernd wrote:
find . -name "*.pdf" | wc -l

"wc" compte des caractères ou (comme ici avec -l) des lignes.

Cela donne le nb de dossiers contenus dans le répertoire de départ : la
commande en trouve 14. (de Applications -> vidéos). Ce qui n'est pas le
nb de fichiers .pdf.

Chez moi, /find . -name "*.pdf" | wc -l/
me donne le nombre de 1070
qui est excatement le nombre de lignes
que la commande seule /find . -name "*.pdf"/ produit.
Quelque chose doit clocher chez toi ?
--
J. B.
Avatar
denisb
Le 24/04/2020 à 13:12, Bernd a écrit :
Faut adapter mais je ne vois pas bien comment ?

find . -name "*.pdf" -type f | wc -l
Avatar
pehache
Le 24/04/2020 à 13:12, Bernd a écrit :
pehache wrote:
Cette simple commande du terminal :
find . -name *.pdf
trouve tous les fichiers terminées par .pdf dans le dossier utilisateur.
On en trouve beaucoup. J'aimerais en connaître le nombre présent dans ce
dossier.
Toute recherche sur le web donne beaucoup de résultats mais jamais le nb
de fichiers trouvés.
Il doit falloir faire une boucle qui compte et additionne les fichiers -
mais je ne vois pas bien comment.


find . -name "*.pdf" | wc -l

"wc" compte des caractères ou (comme ici avec -l) des lignes.

Cela donne le nb de dossiers contenus dans le répertoire de départ

Euh, non, pas du tout !
: la
commande en trouve 14. (de Applications -> vidéos). Ce qui n'est pas le
nb de fichiers .pdf.

Je ne sais pas ce que tu fais au juste, mais cette commande chez moi
compte bien le nombre de fichiers PDF. En fait elle les compte dans
l'arborescence sous le dossier courant ".". Pour n'avoir que ceux du
dossier courant il faut ajouter l'option "-depth 1" à la commande "find"
(mais dans ce cas un simple "ls *.pdf | wc -l" le fait aussi).
J'ai fini par trouver une formule qui comporte bien une boucle :
for dossier in 'find /var -type d' ; do NBF='find $dossier -type f -name
* | wc -l'; echo '$dossier:' $NBF; done
Je l'adapte à ma recherche :
for dossier in 'find . -name *.pdf' ; do nbf='find $dossier -type f
-name * | wc -l'; echo '$dossier:' $nbf; done

???
Mais là on obtient en résultat :
$dossier: find $dossier -type f -name * | wc -l
Il y a une erreur quelque part.
Faut adapter mais je ne vois pas bien comment ?

Déjà partout où tu as mis des quotes "'" il faut les remplacer par des
backquotes "`". Mais même ainsi cette commande n'a ni queue ni tête et
je ne vois pas comment elle pourrait répondre à ta demande initiale
--
- "...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes." (ST sur fr.bio.medecine)
- "Je suis ATARIste, et j'ai bien l'intention que l'on me respecte ici."
(FLC sur fr.comp.sys.atari)
Avatar
M.V.
Le 24 avril 2020 à 12 h 19, Bernd a pris le temps d'écrire :
Toute recherche sur le web donne beaucoup de résultats mais jamais le nb
de fichiers trouvés.

De ça aussi tu as déjà parlé dans fcomox !
C'était un peu plus vieux que pour ta précédente demande (au sujet de
"top") : mai 2018 dans une enfilade que tu avais initiée "Recherches en
ligne de commande"…
Et là aussi, tu avais eu du mal avec les commandes que l'on t'avait
indiquées.
C'est, il me semble, à l'issue de cette discussion que Joseph-B et moi
( ? ) avions commencé un script AppleScript de recherche d'éléments
basé sur Spotlight ! ;-)
--
Michel VAUQUOIS - <http://michelvauquois.fr>
Avatar
romer
denisb wrote:
Faut adapter mais je ne vois pas bien comment ?

find . -name "*.pdf" -type f | wc -l

Me donne toujours 14 et le mystère demeure.
Voilà ce que reproduit le terminal :
<iMac de bernd-> find . -name "*.pdf" -type f | wc -l
find: ./.config/htop: Permission denied
14
--
A+
Romer
Avatar
romer
pehache wrote:
Déjà partout où tu as mis des quotes "'" il faut les remplacer par des
backquotes "`".

Faut le savoir :-)
Mais même ainsi cette commande n'a ni queue ni tête et
je ne vois pas comment elle pourrait répondre à ta demande initiale

La commande est donnée dans cette page :
https://www.commentcamarche.net/forum/affich-5434589-le-nombre-des-fichier-dans-un-sous-repertoire
Je donne le passage où la commande se trouve :
Sous Linux parfois on a un problème du nombre d'inode restant (pointeurs
vers les fichiers) visible quand on a un 100% sur la commande df -khi.
Dans ce cas pour trouver le coupable (qui consomme beaucoup d'inodes
donc de fichiers) j'utilise la commande suivante :
for dossier in 'find /var -maxdepth 1 -type d' ; do NBF='find $dossier
-name * | wc -l'; echo $dossier: $NBF; done
--
A+
Romer
Avatar
romer
Joseph-B wrote:
Chez moi, /find . -name "*.pdf" | wc -l/
me donne le nombre de 1070
qui est excatement le nombre de lignes
que la commande seule /find . -name "*.pdf"/ produit.
Quelque chose doit clocher chez toi ?

En effet, c'est très insolite.
find . -name "*.pdf"
me donne dans le terminal une longue liste que je copie-colle dans un
éditeur.
Le nb d'occurences trouvées est 1277
Mais find . -name "*.pdf" | wc -l
me donne toujours 14...
A n'y rien comprendre.
--
A+
Romer
Avatar
romer
M.V. wrote:
De ça aussi tu as déjà parlé dans fcomox !
C'était un peu plus vieux que pour ta précédente demande (au sujet de
"top") : mai 2018 dans une enfilade que tu avais initiée "Recherches en
ligne de commande"…
Et là aussi, tu avais eu du mal avec les commandes que l'on t'avait
indiquées.
C'est, il me semble, à l'issue de cette discussion que Joseph-B et moi
( ? ) avions commencé un script AppleScript de recherche d'éléments
basé sur Spotlight ! ;-)

En effet il y a longtemps que je me pose la question mais pour l'instant
rien.
Apparemment pas de résultats positifs donc car je l'aurais noté quelque
part. Et ça c'est facile à retrouver.
--
A+
Romer
1 2 3 4 5