Anche se non molto spesso, ci sono momenti in cui è necessario scoprire quanti file ci sono in una determinata directory. Ad esempio, se esaurisci 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.
Conta file nella directory #
Il modo più semplice per contare i file in una directory è elencare un file per riga con ls e reindirizzare l'output a wc contare le righe:
ls -1U DIR_NAME | wc -l
Il comando sopra ti darà una somma di tutti i file, comprese le directory e i collegamenti simbolici. Il -1 opzione significa elencare un file per riga e -U dice a ls per non ordinare l'output che rende più veloce l'esecuzione del comando.
ls -1U il comando non conta i file nascosti (dotfile).
Se vuoi contare solo i file e non includere le directory, usa quanto segue:
ls -1Up DIR_NAME | grep -v / | wc -l
Il -p l'opzione forza ls per aggiungere una barra (/ ) indicatore alle directory. L'output viene inviato tramite pipe a grep -v comando che esclude le directory.
Per avere un maggiore controllo su quali file sono elencati, usa find comando invece di ls :
find DIR_NAME -maxdepth 1 -type f | wc -l
-type f l'opzione dice find per elencare solo i file (inclusi i dotfile) e -maxdepth 1 limita la ricerca alla directory di primo livello.
Conta ricorsivamente i file nella directory #
Per contare in modo ricorsivo i file nella directory, esegui find comando come segue:
find DIR_NAME -type f | wc -l
Un altro comando che può essere utilizzato per contare i file è tree che elenca il contenuto delle directory in un formato ad albero:
tree DIR_NAME L'ultima riga di output mostrerà il numero totale di file e directory elencati:
15144 directories, 91311 files
Conclusione #
Ti abbiamo mostrato come contare i file nella directory usando ls , find e tree comandi.
Se hai domande o feedback, sentiti libero di lasciare un commento.