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.