Visualizza il contenuto di una directory. Corrisponde al "dir" di Windows.
Comando comune in tutti gli Unix, a volte con opzioni diverse.
Se non viene specificata alcuna directory, indica i file nella directory corrente.
ls [opzioni] [file]
-a
Visualizza tutti i file, anche quelli nascosti (che iniziano con un punto: .)
-l
(--format=long) Visualizza informazioni aggiuntive quali data di modifica, permessi, owner e group
-i
(--inode) Visualizza anche l'inode dei file
-f
Non esegue alcun ordinamento di file e li visualizza nell'ordine con cui sono stati memorizzati (di default ls fa un elenco in ordine alfabetico)
-t
(--sort=time) Ordina l'elenco dei file secondo la data di modifica
-u
(--time=access) Ordina l'elenco dei file secondo la data di ultimo accesso
-S
(--tsort=size) Ordina l'elenco dei file secondo la dimensione
-r
(--reverse) Ordina in senso inverso l'output dei file (da usare con -t, -u, -S ecc.)
-X
(----sort=extension) Ordina i file per estensione
-R
(--recursive) Elenca ricorsivamente tutte le sottodirectory e i file ivi contenuti, rispetto alla directory specificata (o corrente)
-I pattern
(--ignore pattern) Non visualizza i file che matchano il pattern specificato
Esempi
ls -lS /var/spool/mail
Esegue un listing esteso dei file contenuti in /var/spool/mail ordinandoli secondo dimensioni dal pił grande al pił piccolo.
ls -ltr /var/log
Elenca i file contenuti nella directory /var/log secondo data di modifica inversa: dal pił vecchio al pił recente.
ls -a ~
Elenca tutti i file (anche quelli nascosti, preceduti da un .) presenti nella propria home directory.
Capire, muoversi e modificare file e directory: /, .., . , cd, ls, cp, mv, rm, rmdir, mkdir. Uso di link e symlink.
find e ls
Non ho trovato opzioni di ls al riguardo, con ls -R visualizzi anche il contenuto delle sottodirectory, ma non nel formato completo che ti serve.
Puoi usare il comando find, comunque, che tral'altro apre un mondo di possibilitą di ricerca secondo criteri vari.
Opzioni di ls
Esiste un'opzione per generare la lista dei file iincludendo il nome della directory, qualcosa del tipo:
/home/user1/file1
/home/user1file2.txt
Una cosa del genere riesco ad ottenerla con il comando locate, ma con ls finora non ci sono riuscito...