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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow