Bash
Elenco dei file
Ricerca…
Sintassi
- ls [OPTION] ... [FILE] ...
Parametri
| Opzione | Descrizione |
|---|---|
-a , --all | Elenca tutte le voci incluse quelle che iniziano con un punto |
-A , -A --almost-all | Elenca tutte le voci escluso . e .. |
-c | Ordina i file in base al tempo di modifica |
-d , --directory | Elenca le voci della directory |
-h , --human-readable | Mostra le taglie in formato leggibile dall'uomo (es. K , M ) |
-H | Come sopra solo con potenze di 1000 invece di 1024 |
-l | Mostra i contenuti in formato long-listing |
-o | Formato di long-list senza informazioni di gruppo |
-r , --reverse | Mostra i contenuti in ordine inverso |
-s , --size | Stampa le dimensioni di ogni file in blocchi |
-S | Ordina per dimensione del file |
--sort=WORD | Ordina i contenuti di una parola. (cioè dimensione, versione, stato) |
-t | Ordina per ora di modifica |
-u | Ordina per l'ultimo tempo di accesso |
-v | Ordina per versione |
-1 | Elenca un file per riga |
Elenca file
Il comando ls elenca i contenuti di una directory specificata, esclusi i dotfile. Se non viene specificata alcuna directory, per impostazione predefinita vengono elencati i contenuti della directory corrente.
I file elencati sono ordinati alfabeticamente, per impostazione predefinita e allineati in colonne se non si adattano a una riga.
$ ls
apt configs Documents Fonts Music Programming Templates workspace
bin Desktop eclipse git Pictures Public Videos
Elenca i file in un formato di annuncio lungo
L'opzione -l del comando ls stampa i contenuti di una directory specificata in un formato di elenco lungo. Se non viene specificata alcuna directory, per impostazione predefinita vengono elencati i contenuti della directory corrente.
ls -l /etc
Esempio di output:
total 1204
drwxr-xr-x 3 root root 4096 Apr 21 03:44 acpi
-rw-r--r-- 1 root root 3028 Apr 21 03:38 adduser.conf
drwxr-xr-x 2 root root 4096 Jun 11 20:42 alternatives
...
L'output visualizza per primo il total , che indica la dimensione totale in blocchi di tutti i file nella directory elencata. Quindi visualizza otto colonne di informazioni per ogni file nella directory elencata. Di seguito sono riportati i dettagli di ogni colonna nell'output:
| Colonna n. | Esempio | Descrizione |
|---|---|---|
| 1.1 | d | Tipo di file (vedi tabella sotto) |
| 1.2 | rwxr-xr-x | Stringa di autorizzazione |
| 2 | 3 | Numero di collegamenti reali |
| 3 | root | Nome del proprietario |
| 4 | root | Gruppo di proprietari |
| 5 | 4096 | Dimensione del file in byte |
| 6 | Apr 21 03:44 | Tempo di modifica |
| 7 | acpi | Nome del file |
Tipo di file
Il tipo di file può essere uno dei seguenti caratteri.
| Personaggio | Tipo di file |
|---|---|
- | File regolare |
b | Blocca file speciale |
c | File speciale di carattere |
C | File ad alte prestazioni ("dati contigui") |
d | elenco |
D | Porta (file IPC speciale solo in Solaris 2.5+) |
l | Collegamento simbolico |
M | File off-line ("migrato") (Cray DMF) |
n | File speciale di rete (HP-UX) |
p | FIFO (named pipe) |
P | Porta (file di sistema speciale solo in Solaris 10+) |
s | presa di corrente |
? | Qualche altro tipo di file |
Elenca i file ordinati per dimensione
L'opzione -S del comando ls ordina i file in ordine decrescente di dimensione del file.
$ ls -l -S ./Fruits
total 444
-rw-rw-rw- 1 root root 295303 Jul 28 19:19 apples.jpg
-rw-rw-rw- 1 root root 102283 Jul 28 19:19 kiwis.jpg
-rw-rw-rw- 1 root root 50197 Jul 28 19:19 bananas.jpg
Se utilizzato con l'opzione -r , l'ordinamento viene invertito.
$ ls -l -S -r /Fruits
total 444
-rw-rw-rw- 1 root root 50197 Jul 28 19:19 bananas.jpg
-rw-rw-rw- 1 root root 102283 Jul 28 19:19 kiwis.jpg
-rw-rw-rw- 1 root root 295303 Jul 28 19:19 apples.jpg
Elenca i file senza usare `ls`
Usa l' espansione del nome file della shell Bash e le capacità di espansione delle parentesi graffe per ottenere i nomi dei file:
# display the files and directories that are in the current directory
printf "%s\n" *
# display only the directories in the current directory
printf "%s\n" */
# display only (some) image files
printf "%s\n" *.{gif,jpg,png}
Per acquisire un elenco di file in una variabile per l'elaborazione, è in genere consigliabile utilizzare un array bash :
files=( * )
# iterate over them
for file in "${files[@]}"; do
echo "$file"
done
Elencare i dieci file modificati più di recente
Quanto segue elencherà fino a dieci dei file modificati più di recente nella directory corrente, utilizzando un formato di elenco lungo ( -l ) e ordinato per ora ( -t ).
ls -lt | head
Elenca tutti i file compresi i dotfile
Un dotfile è un file i cui nomi iniziano con a . . Questi sono normalmente nascosti da ls e non elencati se non richiesti.
Ad esempio il seguente output di ls :
$ ls
bin pki
L'opzione -a o --all elencherà tutti i file, inclusi i dotfile.
$ ls -a
. .ansible .bash_logout .bashrc .lesshst .puppetlabs .viminfo
.. .bash_history .bash_profile bin pki .ssh
L'opzione -A o -A --almost-all elencherà tutti i file, inclusi i dotfile, ma non l'elenco implicito . e .. Si noti che . è la directory corrente e .. è la directory principale.
$ ls -A
.ansible .bash_logout .bashrc .lesshst .puppetlabs .viminfo
.bash_history .bash_profile bin pki .ssh
Elenca i file in un formato ad albero
Il comando tree elenca i contenuti di una directory specificata in un formato ad albero. Se non viene specificata alcuna directory, per impostazione predefinita vengono elencati i contenuti della directory corrente.
Esempio di output:
$ tree /tmp
/tmp
├── 5037
├── adb.log
└── evince-20965
└── image.FPWTJY.png
Utilizzare l'opzione -L del comando tree per limitare la profondità di visualizzazione e l'opzione -d per elencare solo le directory.
Esempio di output:
$ tree -L 1 -d /tmp
/tmp
└── evince-20965