Conta il numero di file all'interno di una directory in Linux? [chiuso]


333

Per contare il numero di file in una directory, di solito uso

ls directory | wc -l

Ma c'è un altro comando che non usa wc?


16
Qual è esattamente il problema wcche ti impedisce di usarlo?
vanza,

5
Non proprio. I comandi Unix sono generalmente intesi per essere usati in questo modo, incatenati nelle pipe.
Michael Berkowski,

2
Mi collego via SSH a un altro host per accedere ad alcuni dati. Sfortunatamente un sacco di comandi di base non sembrano funzionare su questo host. Se uso wc restituisce "comando non riconosciuto". Quindi sto cercando altre opzioni.
Kantura,

7
Usa il treecomando Ti darà l'albero e in fondo ti dirà quanti file e directory ci sono. Se si desidera utilizzare anche file nascosti tree -a.
Elijah Lynn

5
@vanza " Qual è esattamente il problema con wc ", cosa succede se un file ha un \nnome nel file? Sì, estremamente improbabile! Ma tecnicamente valido e possibile.
JamesThomasMoon1979,

Risposte:


524

questo è uno:

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

Nota:

ls -1 | wc -l

Il che significa: lselenca i file in dir

-1: (che è UNO) solo una voce per riga. Modificalo in -1a se vuoi anche file nascosti

|: uscita del tubo su ...

wc: "wordcount"

-l: conta lines.


1
Non aspettare . Ho fatto un booboo. Hai assolutamente ragione Sajad Lfc. ls -1 dir | egrep -c '' Restituisce il numero di file in dir. Grazie .
Kantura,

1
@SajadKaruthedath ls -l . | egrep -c '^-'non conta i file nascosti. Suggerisco di aggiungere la -abandiera a ls.
JamesThomasMoon1979,

1
@ JamesThomasMoon1979: per favore, controlla la mia descrizione
Sajad Karuthedath,

1
Questo mostra un errore quando non ci sono file nella cartella. Usa ls -1 /dir 2>/dev/null | wc -l. Qui l'output di ls è diretto a / dev / null e il risultato è uno zero pulito
Sathish

6
@runios è perché ls -lrestituisce una riga aggiuntiva nella parte superiore sommando le dimensioni del file per un importo totale. Dovresti usare ls -1e non il ls -l. Anche se si vogliono file nascosti ma senza le directory .e ..si dovrebbe usarels -1A | wc -l
Daniel Biegler
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.