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