Compter le nombre de fichiers dans un répertoire sous Linux? [fermé]

333

Pour compter le nombre de fichiers dans un répertoire, j'utilise généralement

ls directory | wc -l

Mais y a-t-il une autre commande qui n'utilise pas wc?

Kantura
la source
16
Quel est exactement le problème wcqui vous empêche de l'utiliser?
vanza
5
Pas vraiment. Les commandes Unix sont généralement destinées à être utilisées de cette façon, enchaînées dans des tuyaux.
Michael Berkowski
2
Je me connecte via ssh à un autre hôte pour accéder à certaines données. Malheureusement, un tas de commandes de base ne semblent pas fonctionner sur cet hôte. Si j'utilise wc, il renvoie "commande non reconnue". Je cherche donc d'autres options.
Kantura
7
Utilisez la treecommande. Il vous donnera l'arborescence et en bas vous indiquera le nombre de fichiers et de répertoires. Si vous souhaitez également utiliser des fichiers cachés tree -a.
Elijah Lynn
5
@vanza " Quel est exactement le problème avec wc ", que faire si un fichier a un \ndans le nom de fichier? Oui, extrêmement improbable! Mais toujours techniquement valable et possible.
JamesThomasMoon1979

Réponses:

524

c'est un:

ls -l . | egrep -c '^-'

Remarque:

ls -1 | wc -l

Ce qui signifie:: lslister les fichiers en dir

-1: (c'est UN) une seule entrée par ligne. Changez-le en -1a si vous voulez aussi des fichiers cachés

|: sortie de tuyau sur ...

wc: "wordcount"

-l: compter les lines.

Sajad Karuthedath
la source
1
Non attends . J'ai fait un booboo. Vous avez absolument raison Sajad Lfc. ls -1 dir | egrep -c '' Ceci retourne le nombre de fichiers en dir. Merci .
Kantura
1
@SajadKaruthedath ls -l . | egrep -c '^-'ne compte pas les fichiers cachés. Je suggère d'ajouter un -adrapeau à ls.
JamesThomasMoon1979
1
@ JamesThomasMoon1979: veuillez vérifier ma description
Sajad Karuthedath
1
Cela montre une erreur lorsqu'il n'y a aucun fichier dans le dossier. Utilisez ls -1 /dir 2>/dev/null | wc -l. Ici, la sortie de ls est dirigée vers / dev / null et le résultat est un zéro propre
Sathish
6
@runios c'est parce que ls -lretourne une ligne supplémentaire en haut additionnant les tailles de fichier pour un montant total. Vous devez utiliser ls -1et non le ls -l. Aussi, si l'on veut des fichiers cachés mais sans les répertoires .et que ..vous devez utiliserls -1A | wc -l
Daniel Biegler