Introduzione
Potrebbero capitare momenti in cui è necessario scoprire quanti file si trovano in una determinata directory. Ad esempio, se esaurisci gli inode sul tuo sistema Linux, dovrai trovare quale directory contiene migliaia o milioni di file.
In questo articolo, ti mostreremo diversi modi per trovare il numero di file in una directory in Linux.
Contare i file nella directory
Il modo più semplice per contare i file in una directory è elencare un file per riga con ls
e convogliare l'output per contare le righe wc
:
ls -1 DIR_NAME | wc -l
Il comando sopra ti darà una somma di tutti i file, inclusi directory e collegamenti simbolici. Se si desidera contare solo i file e non includere le directory, è possibile utilizzare quanto segue:
ls -1p DIR_NAME | grep -v / | wc -l
L'opzione -p
permette di aggiungere l'indicatore slash /
alle directory. L'output viene reindirizzato al comando grep -v
che esclude le directory.
ls -1
non conta i file nascosti (dotfile).
Per avere un maggiore controllo sui file elencati, è possibile utilizzare il comando find
anziché ls
:
find DIR_NAME -maxdepth 1 -type f | wc -l
L'opzione -type f
permette a find
di elencare solo i file (compresi i dotfile) e di limitare la ricerca alla directory di primo livello con -maxdepth 1
.
Conteggio ricorsivo dei file nella directory
Per contare ricorsivamente i file nella directory, eseguire il comando find
come segue:
find DIR_NAME -type f | wc -l
Un altro comando che può essere utilizzato per contare i file è tree
che elenca i contenuti delle directory in un formato ad albero:
tree DIR_NAME
L'ultima riga dell'output mostrerà il numero totale di file e directory elencati:
11255 directories, 61231 files
Conclusione
Vi abbiamo mostrato come contare i file nella directory utilizzando i comandi ls
, find
e tree
.