Elencare il contenuto di una cartella

ls

Il comando che permette di elencare tutti i file presenti all'interno di una cartella è ls.
Questo comando è necessario per iniziare ad utilizzare tutti gli altri comandi che lavorano con i file perché prima di lavorare con i file occorre conoscere quali file ci sono.
Quando si digita il comando ls, immediatamente apparirà a schermo la lista dei file e delle sottocartelle presenti.
Il comando ls può essere accompagnato da varie opzioni. Ad esempio, se mi trovo in una cartella e voglio elencare i file e le sottocartelle presenti in un'altra cartella di nome cartella1, allora occorre digitare:

ls cartella1

oppure, se la cartella è contenuta nella cartella home sell'utente, è possibile utilizzare anche il percorso assoluto:

ls /home/nome_utente/cartella1

il risultato sarà identico al precedente.
Altra alternativa con identico risultato è la seguente:

ls ~/cartella1

in cui la digitazione ~/ indica la cartella home dell'utente in uso.
In queste digitazioni non sono stati inclusi i file nascosti. Per visualizzare anche questi, occorre modificare il comando come segue:

ls -a cartella1

ovvero:

ls --all cartella1

Per avere informazioni anche sul tipo di file occorre digitare:

ls -a cartella1

ovvero:

ls --classify cartella1

per listare i nomi dei file con relativa estensione. In realtà, alcuni file vengono indicati con dei caratteri particolari e non con le loro estensioni perché non sarebbero significative. I significati sono i seguenti:

  • nome_file* è un eseguibile
  • nome_file/ è una cartella
  • nome_file@ è un link simbolico
  • nome_file| è un file FIFO
  • nome_file= è un file socket

Una alternativa all'uso di questa opzione è la digitazione del seguente comando:

ls --color cartella1

che elenca i file presenti nella cartella utilizzando un colore particolare per ogni tipo di file. Il significato dei vari colori è il seguente:

Colore Significato
Default File comuni
Verde Eseguibili
Blu Cartelle
Magenta Link simbolici
Giallo FIFO
Magenta Socket
Rosso Archivi (in vari formati: .tar, .zip, .rpm, .deb)
Magenta Immagini (.jpg, .gif, .png, .tif)
Magenta Audio (.mp3, .ogg, .wav)

È possibile tenere sempre sottomano la tabella sopra riportata digitando il comando:

dircolor --print-database

Questo comando può essere utilizzato anche per cambiare i colori di default.

Elencare anche i file presenti nelle sottocartelle
Per elencare anche i file presenti nelle sottocartelle contenute nella cartella di lavoro occorre utilizzare l'opzione -R (ovvero --recursive):

ls -R cartella1

ovvero:

ls --recursive cartella1

ed in questo caso, nell'output non appariranno più i nomi delle sottocartelle ma i nomi di tutti i file presenti nella cartella di lavoro e nelle sottocartelle contenute.

Formattare l'output del comando ls
Possiamo formattare l'output del comando ls in vari modi, ad esempio visualizzando i risultati su una unica colonna con il seguente comando:

ls -1 cartella1

ovvero:

ls --format=single-column cartella1

Altra alternativa è visualizzare l'output su una unica riga e con i nomi separati da virgole:

ls -m cartella1

ovvero:

ls --format=commas cartella1

Conoscere i permessi
Per conoscere i permessi che l'utente ha sui file e chi è il proprietario si può utilizzare il comando

ls -l cartella1

In questo caso, un output è del tipo:

-rwxr--r-- numero_hardlink proprietario gruppo dimensione data_ultima_modifica ora_ultima_modifica nome_file

Il primo carattere, in questo caso -, rappresenta il tipo di file che si sta considerando. Il carattere - viene utilizzato per i file comuni e per gli eseguibili, mentre per le cartelle si usa d, per i socket s, per i link simbolici l.
I caratteri successivi al primo sono i permessi e sono in tutto 9 caratteri, divisi in tre gruppi di tre ciascuno, rappresentanti i permessi del proprietario del file (primo gruppo), del gruppo a cui appartiene il proprietario (secondo gruppo) e di tutti gli altri utenti (terzo gruppo). In sostanza, quindi, la scrittura vista in precedenza può essere visualizzata come se fosse rwx | r-- | r--. Le lettere r, w e x rappresentano rispettivamente il permesso di lettura (read), scrittura (write) ed esecuzione (execute). I permessi visti prima permettono lettura, scrittura ed esecuzione al proprietario del file, solo lettura al gruppo e solo lettura a tutti gli altri utenti.
L'opzione -l al comando ls lista i file in ordine alfabetico, per avere una lista in ordine inverso si utilizza l'opzione -r (ovvero --reverse).
Quindi il comando completo in questo caso è:

ls -r cartella1

ovvero:

ls --reverse cartella1

Per visualizzare i file in ordine di estensione si utilizza l'opzione -X (ovvero --sort=extension). Il comando completo è:

ls -X cartella1

Per ordinare in base alla data di modifica si utilizza il comando:

ls -t cartella1

ovvero:

ls --sort=time cartella1

per avere i file ordinati per data, da quello modificato prima a quello modificato per ultimo. Per invertire questo ordine si usa il comando:

ls -tr cartella1

ovvero:

ls --sort=time --reverse cartella1

che è una combinazione con l'opzione -r ovvero --reverse vista in precedenza.
Ultima possibilità è ordinare la lista di file in base alla dimensione, utilizzando l'opzione -s ovvero --sort=size. Il comando diviene:

ls -S cartella1

ovvero:

ls --sort=size cartella1

Visualizzare le dimensioni dei file in formato "umanamente leggibile"
Il titolo di questa sezione sembra pittoresco, in realtà è fortemente ispirato ad una opzione del comando ls.
Quando vengono listati i file contenuti in una cartella, la dimensione viene espressa in byte, che è una unità di misura poco pratica. È invece molto più chiaro conoscere le dimensioni dei file in kb, Mb o Gb. Per fare questo, il comando ls presenta l'opzione -h, ovvero --human-readable (da cui il titolo della sezione). Il comando completo è quindi:

ls -h cartella1

ovvero:

ls --human-readable cartella1
5
Average: 5 (1 vote)
Your rating: None