Menu

Le nombre des fichier dans un sous répertoire [Résolu/Fermé]

CYG - 13 mars 2008 à 10:49 - Dernière réponse :  1234
- 6 mai 2017 à 19:54
Bonjour,

j ai un sous répertoire qui contient x fichiers, j'ai besoin d une commande qui peut compter le nombre de fichiers;
quelqu un peut m'aider

merci d avance

CYG
Afficher la suite 

16 réponses

Jeff 17998 Messages postés lundi 15 février 1999Date d'inscriptionModérateurStatut 13 avril 2018 Dernière intervention - 13 mars 2008 à 10:53
+43
Utile
4
Pour y remédier :

ls -Al | wc -l
Cette réponse vous a-t-elle aidé ?  
merci bcp;ça marche

CYG
ls | wc-w aussi ,mais je me demande la commande wc permet de compter le nombre de lignes et mots ainsi que les caractéres nn ?.Comment cette commande peut compter le nombre de fichiers d'un répertoire???
pour compter voilà la commande
more fichierX
Pour compter le nombre de fichiers du répertoire courant, on peut utiliser :
A. ls | wc -l *

B. echo $PWD > wc

C. ls | wc -w

D. ls -l | wc -w

E. cat $PWD

F. cat $PWD | wc -c
pano-pano - 14 juin 2010 à 11:39
+12
Utile
Bonjour,

Une commande un peu plus simple pour éviter d'avoir les . et .. :

ls -1 | wc -l

Cordialement.
Jeff 17998 Messages postés lundi 15 février 1999Date d'inscriptionModérateurStatut 13 avril 2018 Dernière intervention - 13 mars 2008 à 10:50
+10
Utile
Il suffit de faire un ls et de compter le nombre de lignes (wc -l)
ls -al | wc -l
boly38 271 Messages postés mercredi 23 février 2011Date d'inscription 29 septembre 2016 Dernière intervention - Modifié par boly38 le 16/12/2013 à 11:18
+10
Utile
1
Petit complément au
ls -1|wc -l
pour compter le nombre de fichiers uniquement dans le répertoire courant :

Si l'on souhaite connaître le nombre de fichiers sous dossiers compris pour un répertoire donné :
find /mondossier -name \* | wc -l


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

Exemple de sortie :
/var: 70463
/var/log: 220
/var/spool: 62615
/var/opt: 4
(...)

Détails : pour un répertoire donné je compte les fichiers (sous répertoires compris) et je fais la même chose pour ses premiers sous-répertoires.
boly38 271 Messages postés mercredi 23 février 2011Date d'inscription 29 septembre 2016 Dernière intervention - 16 déc. 2013 à 14:02
pour être précis, il manque l'option
-type f
(ne retenir que les fichiers)
- premier exemple :
find /mondossier -type f -name \* | wc -l

- second :
for dossier in 'find /var -maxdepth 1 -type d' ; do NBF='find $dossier -type f -name \* | wc -l'; echo $dossier: $NBF; done
Jeff 17998 Messages postés lundi 15 février 1999Date d'inscriptionModérateurStatut 13 avril 2018 Dernière intervention - 13 mars 2008 à 10:51
+3
Utile
Nota Bene : ça compte aussi les répertoires "." et ".."
Jeff 17998 Messages postés lundi 15 février 1999Date d'inscriptionModérateurStatut 13 avril 2018 Dernière intervention - 13 mars 2008 à 11:12
+3
Utile
;-)

Merci de penser à noter le problème comme résolu !
+2
Utile
3
Bonjour,

Grace à votre méthode j'arrive a compter le nombre de fichier dans un dossier.
Ce que j'aimerais faire est simple. Si il y a plus de 10 fichier dans le dossier il faut envoyer un mail.
Pour la partie envoi du mail j'ai ce qui faut.
Auriez-vous une méthode pour faire cela?

Alexis
Salut Antony,

C'est de l'assistanat ! Pour effectuer ce genre d'action, il faut savoir utiliser les commandes unix de base et les assembler entre elles --> achète un unix pour les nuls par exemple.

Pour tester une condition: test
Pour afficher les fichiers d'un répertoire: ls
Pour compter les lignes: wc
Pour faire une comparaison: test
=> on obtient alors ceci:
if test $(ls -A | wc -l) -ge 10; then
# ta commande d'envoi de mail
fi

Et n'oublie pas d'acheter unix pour les nuls !


Nicolas
bonjour
svp je cherche un script qui permet d'aafficher uniquement les fichiers excutable !?
mercii d'avance :)
KuKrApOk59 442 Messages postés jeudi 27 décembre 2007Date d'inscription 13 septembre 2013 Dernière intervention - 21 avril 2010 à 11:57
Bonjour,

Pour ce cas, perso, j'utilise un bete find :

root@leela:/tmp/test# ls -l  
total 0  
-rw-r--r-- 1 root root 0 2010-04-21 11:54 pas_script  
-rwxr-xr-x 1 root root 0 2010-04-21 11:54 script

Execution du find pour trouver les fichiers executebles (ici en 755)

root@leela:/tmp/test# find . -perm 0755  
.  
./script

Il prend en paramètre du -perm les permissions qu'on veut chercher
0
Utile
Si tes fichiers sont de meme type (pour mon exemple 'xml' tu fais :

find . -name '*.xml' | wc