Sin dalla creazione di Unix negli anni '70, molti sistemi operativi l'hanno usato come fondazione. Molti di questi sistemi operativi sono falliti, mentre altri hanno avuto successo.

Linux è uno dei sistemi operativi basati su Unix più popolari. È open source ed è usato in tutto il mondo in molte attività.

Una funzionalità fantastica del sistema operativo Linux è l'Interfaccia della Riga di Comando (Command Line Interface - CLI) che permette agli utenti di interagire con il loro computer da una shell. La shell di Linux è un ambiente REPL (Read, Evaluate, Print, Loop - Leggi, Valuta, Stampa, Itera) dove gli utenti possono inserire un comando e la shell lo esegue e restituisce un risultato.

Il comando ls è uno dei molti comandi Linux che permettono ad un utente di elencare i file o le directory dal CLI.

In questo articolo andremo in profondità sul comando ls e su alcune delle più importanti flag di cui avrai bisogno tutti i giorni.

Prerequisiti

  • Un computer con file e cartelle
  • Una delle distribuzioni Linux installata
  • Una conoscenza base sull'uso del CLI
  • Un sorriso :)

Il comando ls in Linux

Il comando ls è usato per elencare file o cartelle in Linux o in altri sistemi operativi basati su Unix.

Proprio come navighi con Esplora o Cerca con una interfaccia grafica, il comando ls ti permette di elencare tutti i file e le cartelle nella cartella corrente di default, e ti permette di interagire ulteriormente con loro attraverso la riga di comando.

Avvia il terminale e digita ls per vederlo in azione:

Screenshot-2020-08-20-at-9.40.29-PM

Come elencare una lista di file in una cartella con opzioni

Il comando ls accetta alcune flag (note anche come opzioni) che sono informazioni addizionali che cambiano come i file o le cartelle sono elencati nel tuo terminale.

In altre parole, le flag cambiano come il comando ls funziona:

 ls [flags] [directory]
PS: La parola contenuti usata in tutto l'articolo si riferisce ai file e cartelle che stanno venendo elencati, non al contenuti di questi file/cartelle ⚠️

Elenca i file nella cartella attuale

Scrivi il comando ls per elencare la lista di contenuti della cartella attuale:

Screenshot-2020-08-20-at-9.40.29-PM

Elencare i file in un'altra cartella

Scrivi il comando ls [qui percorso della cartella] per elencare il contenuto di un'altra cartella:

Screenshot-2020-08-20-at-10.32.52-PM

Elencare i file nella cartella di root

Scrivi il comando ls / per elencare il contenuto della cartella root:

Screenshot-2020-08-20-at-10.46.10-PM

Elencare i file nella cartella genitrice

Scrivi il comando ls .. per elencare il contenuto della cartella genitrice un livello sopra. Usa ls ../.. per il contenuto due livelli sopra:

Screenshot-2020-08-20-at-10.48.22-PM

Elencare i file nella cartella home (/home/utente)

Scrivi ls ~ per elencare i contenuti nella cartella home dell'utente:

Screenshot-2020-08-20-at-10.51.19-PM

Elencare solo cartelle

Scrivi il comando ls -d */ per elencare solo cartelle:

Screenshot-2020-08-21-at-12.53.05-PM

Elencare file con sottocartelle

Scrivi il comando ls * per elencare il contenuto della cartella con le sue sottocartelle:

Screenshot-2020-08-21-at-1.07.54-PM

Elencare file ricorsivamente

Scrivi il comando ls -R per elencare tutti i file e le cartelle con le corrispondenti sottocartelle fino all'ultimo file:

Screenshot-2020-09-01-at-9.04.56-AM
Se hai molti file questo comando può richiedere un sacco di tempo per finire visto che ogni singolo file in ogni cartella viene elencato. Puoi specificare in quale cartella eseguire questo comando, così: ls Downloads -R

Elenca file con la loro dimensione

Scrivi il comando ls -s (la s è minuscola) per elencare i file o cartelle con la loro dimensione:

Screenshot-2020-08-21-at-12.30.19-PM

Elencare file in formato esteso

Scrivi il comando ls -l per elencare i file della cartella in un formato a tabella con colonne che includono:

  • permessi dei contenuti
  • numero di link ai contenuti
  • proprietario dei contenuti
  • proprietario del gruppo dei contenuti
  • dimensione dei contenuti in byte
  • ultima modifica del contenuto
  • nome del file o della cartella
Screenshot-2020-08-20-at-10.52.37-PM

Elencare file in formato esteso con dimensioni di file leggibili

Scrivi il comando ls -ls per elencare i file o le cartelle nello stesso formato a tabella di sopra, ma con una colonna diversa rappresentante la dimensione di ogni file/cartella:

Screenshot-2020-08-21-at-12.14.33-PM

Nota che le dimensioni sono elencare in byte (B), megabyte (MB), gigabyte (GB) o terabyte (TB) quando i file o le cartelle hanno una dimensione maggiore di 1024 byte.

Elencare i file includendo i file nascosti

Scrivi il comando ls -a per elencare tutti i file o le cartelle, inclusi file o cartelle nascosi. In Linux, qualsiasi cosa che inizia con . è considerato un file nascosto:

Screenshot-2020-08-21-at-11.12.26-AM

Elencare file in formato esteso includendo i file nascosti

Scrivi il comando ls -l -a o ls -a -l o ls -la o ls -al per elencare tutti i file o le cartelle nel formato a tabella con informazioni extra, includendo i file nascosti o le cartelle:

Screenshot-2020-08-21-at-12.17.01-PM

Elencare i file per ordine di data

Scrivi il comando ls -t per elencare i file o cartelle in ordine discendente di ultima modifica (dal più grande al più piccolo).

Puoi anche aggiungere un flag -r per invertire l'ordine, così: ls -tr:

Screenshot-2020-08-21-at-12.20.09-PM

Elencare i file e le cartelle per dimensione

Scrivi il comando ls -S (la S è maiuscola) per elencare file e cartelle ordinati per dimensione in ordine discendente (dal più grande al più piccolo).

Puoi anche aggiungere un flag -r per invertire l'ordine, così: ls -Sr:

Screenshot-2020-08-21-at-12.20.38-PM

Elencare i file e scrivere il risultato in un file

Scrivi il comando ls > output.txt per scrivere l'output del comando precedente in un file output.txt. Puoi usare qualsiasi delle flag discusse in precedenza come -la; il punto chiave è che il risultato sarà scritto in un file e non scritto sulla riga di comando.

Poi puoi il file come vuoi, o puoi visualizzare il contenuto del file con cat output.txt:

Screenshot-2020-09-01-at-9.12.59-AM
.

Conclusione

Ci sono un sacco di altri comandi e combinazioni che puoi esplorare per elencare file e cartelle a seconda delle tue necessità. Una cosa da ricordare è l'abilità di combinare più flag assieme.

Immagina di voler elencare i file in formato esteso, includendo i file nascosti e ordinando per dimensione. Il comando sarebbe ls -alS, che è una combinazione di ls -l, ls -a, e ls -S.

Se dimentichi i comandi o non sei sicuro di cosa fanno, puoi eseguire ls --help o man ls che visualizzano un manuale con tutte le possibili opzioni per il comando ls:

Screenshot-2020-09-01-at-9.57.37-AM

Grazie per aver letto quest'articolo!