Come fai a sapere quanti file ci sono in una directory?
In questo breve tutorial imparerai vari modi per contare il numero di file in una directory in Linux.
Metodo 1:utilizzare il comando ls e wc per contare il numero di righe in una directory
L'opzione più semplice e ovvia è utilizzare il comando wc per contare il numero di file.
ls | wc -l
Il comando precedente conterà tutti i file e le directory ma non quelli nascosti. Puoi usare -A
opzione con il comando ls per elencare i file nascosti ma tralasciando . e .. directory:
ls -A | wc -l
Se vuoi contare solo il numero di file, inclusi i file nascosti, nella directory corrente, puoi combinare alcuni comandi come questo:
ls -Ap | grep -v /$ | wc -l
Lascia che ti spieghi cosa fa:
-p
con ls aggiunge/
alla fine dei nomi delle directory.-A
con ls elenca tutti i file e le directory, inclusi i file nascosti ma esclusi . e .. directory.grep -v /$
mostra solo le righe che NON corrispondono (-v
opzione) righe che terminano con/
.wc -l
conta il numero di righe.
Fondamentalmente, usi ls
per elencare visualizzare tutti i file e le directory (con / aggiunto ai nomi delle directory). Quindi utilizzare il reindirizzamento della pipe per analizzare questo output nel comando grep. Il comando grep mostra solo le righe che non hanno / alla fine. Il comando wc conta quindi tutte queste righe.
Metodo 2:usa il comando tree per contare il numero di file in una directory
Puoi usare il comando tree per visualizzare il numero di file nella directory attuale e tutte le sue sottodirectory.
tree -a
Come puoi vedere, l'ultima riga dell'output mostra il numero di directory e file, inclusi quelli nascosti grazie all'opzione -a
.
Se vuoi ottenere solo il numero di file nella directory corrente, escludi le sottodirectory, puoi impostare il livello su 1 in questo modo:
tree -a -L 1
Metodo 3:usa il comando trova per contare il numero di file in una directory
Il comando evergreen find è molto utile quando si tratta di gestire file.
Se vuoi contare il numero di file in una directory, usa il comando find per ottenere prima tutti i file e poi contali usando il comando wc.
find directory_path -type f | wc -l
Con -type f
dici al comando trova di cercare solo i file.
Se non vuoi i file dalle sottodirectory, limita l'ambito del comando find al livello 1, ovvero la directory corrente.
find . -maxdepth 1 -type f | wc -l
Potrebbero esserci altri modi per contare il numero di righe in una directory in Linux. Sta a te decidere come vuoi procedere.
Spero che tu lo trovi utile. Sentiti libero di lasciare una domanda o un suggerimento nella sezione commenti.