Introduzione

Il comando ls è uno dei comandi di base che qualsiasi utente Linux dovrebbe conoscere. Viene utilizzato per elencare informazioni su file e directory all'interno del file system. L'utility ls fa parte del pacchetto GNU di base che è installato su tutte le distribuzioni Linux.

In questo tutorial, ti mostreremo come utilizzare il comando ls attraverso esempi pratici e spiegazioni dettagliate delle opzioni ls più comuni .

Come usare il comando ls

La sintassi per il comando ls è la seguente:

ls [OPTIONS] [FILES]

Se utilizzato senza opzioni e argomenti, ls visualizza un elenco dei nomi di tutti i file nella directory di lavoro corrente :

ls

I file sono elencati in ordine alfabetico:

cache  db  empty  games  lib  local  lock  log  mail  opt  run  spool  tmp

Per elencare i file in una directory specifica, passare il percorso alla directory come argomento al comando ls. Ad esempio, per elencare i contenuti della directory /etc digitare:

ls /etc

È inoltre possibile passare più directory e file al comando ls separati da spazio:

ls /etc /var /etc/passwd

Se l'utente che ha effettuato l'accesso non dispone delle autorizzazioni di lettura per la directory, verrà visualizzato un messaggio che informa che ls non può aprire la directory:

ls /root
ls: cannot open directory '/root': Permission denied

Il comando ls ha una serie di opzioni. Nelle sezioni seguenti, esploreremo le opzioni più comunemente utilizzate.

Formattare l'elenco

L'output predefinito del comando ls mostra solo i nomi dei file e delle directory, il che non è molto informativo.

L'opzione -l (L minuscola) permette di visualizzare l'elenco dei file in un formato di elenco lungo (long listing format).

Quando viene utilizzato il formato long listing format, il comando ls mostrerà le seguenti informazioni sul file:

  • Il tipo di file
  • Le autorizzazioni del file
  • Numero di collegamenti reali al file
  • Proprietario del file
  • File group
  • Dimensione del file
  • Data e ora
  • File name

Considera il seguente esempio:

ls -l /etc/hosts
-rw-r--r-- 1 root root 445 May  5 12:11 /etc/hosts

Spieghiamo le colonne più importanti dell'output.

Il primo carattere mostra il tipo di file. Nel nostro esempio, il primo carattere è -che indica un file normale. I valori per altri tipi di file sono i seguenti:

  • - - File normale
  • b - Blocca file speciale
  • c - File speciale di caratteri
  • d - Directory
  • l - Collegamento simbolico
  • n - Network file
  • p - FIFO
  • s - Presa

I prossimi nove caratteri mostrano i permessi del file. I primi tre caratteri sono per l'utente, i tre successivi sono per il gruppo e gli ultimi tre sono per gli altri. È possibile modificare le autorizzazioni del file con il comando chmod. Il carattere di autorizzazione può assumere il seguente valore:

  • r - Autorizzazione a leggere il file
  • w - Autorizzazione a scrivere nel file
  • x - Autorizzazione per eseguire il file
  • s - bit setgid
  • t - un po 'appiccicoso

Nel nostro esempio, rw-r--r-- significa che l'utente può leggere e scrivere il file e il gruppo e altri possono solo leggere il file. Il numero 1 dopo i caratteri di autorizzazione è il numero di collegamenti fisici a questo file.

I prossimi due campi root root mostrano il proprietario del file e il gruppo, seguiti dalla dimensione del file 445, mostrata in byte. Utilizzare l'opzione -h se si desidera stampare formati in un formato leggibile dall'uomo (human-readable). È possibile modificare il proprietario del file utilizzando il comando chown

May  5 12:11  è la data e l'ora dell'ultima modifica del file.

L'ultima colonna è il nome del file.

Mostra file nascosti

Per impostazione predefinita, il comando ls non mostrerà i file nascosti. In Linux, un file nascosto è qualsiasi file che inizia con un punto (.).

Per visualizzare tutti i file inclusi i file nascosti utilizzare l'opzione -a:

ls -la ~/
drwxr-x--- 11 noviello  noviello  4096 Feb 11 14:28 .
drwxr-xr-x 12 noviello  noviello  4096 Dec 22 03:28 ..
-rw-------  2 noviello  noviello  1630 Nov 13  2018 .bash_history
drwxr-xr-x  3 noviello  noviello  4096 Jul 23  2018  bin
drwxr-xr-x  3 noviello  noviello  4096 Jul 22  2018  Desktop
drwxr-xr-x  4 noviello  noviello  4096 Dec 11  2018 .npm
drwx------  1 noviello  noviello  4096 Mar  1  2018 .ssh

Ordinamento dell'uscita

Come già accennato, per impostazione predefinita il comando ls elenca i file in ordine alfabetico.

L'opzione --sort consente di ordinare l'output per estensione, dimensione, ora e versione:

  • --sort=extension(o -X) - ordina in ordine alfabetico per estensione.
  • --sort=size(o -S) - ordina per dimensione del file.
  • --sort=time(o -t) - ordina per tempo di modifica.
  • --sort=version(o -v) - Ordinamento naturale dei numeri di versione.

Se si desidera ottenere i risultati nell'ordinamento inverso, utilizzare l'opzione -r.

Ad esempio, per ordinare i file nella directory /var in base al tempo di modifica nell'ordinamento inverso, utilizzare:

ls -ltr /var

Vale la pena ricordare che il comando ls non mostra lo spazio totale occupato dal contenuto della directory. Per ottenere la dimensione di una directory utilizzare il comando du

Elenca sottodirectory ricorsivamente

L'opzione -R indica al comando ls di visualizzare ricorsivamente il contenuto delle sottodirectory:

ls -R

Conclusione

Il comando ls elenca informazioni su file e directory. Per maggiori informazioni su ls  digita nel terminale:

man ls