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