Come utilizzare il comando ls per elencare file e directory su Linux
Punti chiave
- Il comando ls è un potente strumento che può essere utilizzato per elencare file e directory.
- Esistono molte opzioni e parametri utili per ls che possono migliorarne la funzionalità e renderlo più comodo da usare.
- ls -la è un buon comando da usare se vuoi vedere tutto in una cartella.
Usiamo il ls
comando Linux ogni giorno senza pensarci. È un peccato. Prestagli un po’ di attenzione e troverai molte opzioni utili, incluse alcune che dovresti aggiungere al tuo arsenale da riga di comando.
ls Elenca file e directory
Il ls
comando è probabilmente il primo che incontra la maggior parte degli utenti Linux. Quelli di noi che frequentano la riga di comando la usano giorno dopo giorno senza nemmeno pensarci. Ciò potrebbe spiegare perché in questo comando c’è di più di quanto la maggior parte degli utenti creda. Elenchiamo i file con esso per vedere cosa c’è in una directory. Elenchiamo i file in formato lungo quando vogliamo esaminare le autorizzazioni su un file. Oltre a ciò, riceve poca considerazione.
Il ls
comando è uno di quei comandi con una ricchezza di opzioni. Forse questo è parte del problema. Ci sono così tante opzioni, come selezionarle per trovare quelle utili? E dopo averli trovati, come li ricordi?
Utili permutazioni del ls
comando con le relative stringhe di opzioni e parametri sono i candidati perfetti per gli alias . In effetti, nella maggior parte delle distribuzioni, quello che consideri il ls
comando “nudo” è in realtà un alias. Tra l’altro il tipo lstype command can be used to show the underlying definition of aliases. Let's look at the definition of
ls
:
I --color=auto
parametri vengono inclusi automaticamente ogni volta che si utilizza il ls
comando. Questo è ciò che fornisce i diversi colori per i diversi tipi di file negli elenchi.
Elenchi ls semplici
Tutti coloro che hanno trascorso un po’ di tempo utilizzando il terminale Linux sanno che, per impostazione predefinita, ls
elenca i file e le directory nella directory corrente.
ls
Se desideri che la tua inserzione venga prodotta in un’unica colonna, utilizza l’ -1
opzione (un file per riga):
ls -1
Discuteremo di quel nome di file dall’aspetto strano in cima all’elenco tra un minuto.
Utilizzo di ls su directory diverse
Per ls
elencare i file in una directory diversa da quella corrente, passare il percorso della directory a ls
sulla riga di comando. Puoi anche passare più di una directory a ls
e averle elencate una dopo l’altra. Qui chiediamo ls
di elencare i file in due directory, una chiamata “Help” e l’altra chiamata “gc_help”.
ls Help gc_help
Dopo ls
aver elencato il contenuto della prima directory elenca il contenuto della seconda. Stampa il nome di ciascuna directory mentre le elabora:
Utilizzo di modelli di file
Per elencare selettivamente un insieme di file, utilizzare la corrispondenza dei modelli. Il punto interrogativo “ ?
“rappresenterà qualsiasi singolo carattere e l’asterisco “ *
“rappresenterà qualsiasi stringa di caratteri. Per elencare file o directory i cui nomi iniziano con “ip_” utilizzare questo formato:
ls ip_*
Per elencare i file con estensione “.c”, utilizzare questo formato:
ls *.c
È inoltre possibile utilizzare ls
con grep
e utilizzare le funzionalità di corrispondenzagrep
dei modelli di . Cerchiamo eventuali file che hanno la stringa “_pin_” nel nome:
ls | grep _pin_
È quasi come usarlo ls
da solo, con due caratteri jolly:
ls | grep _pin_
ls *_pin_*
Perché quasi lo stesso? Nota i diversi layout. grep
forza l’output a un singolo nome file per formato riga.
Caratteri non stampabili
È possibile ritrovarsi con un nome file che contiene un carattere non stampabile o di controllo . In genere questo può accadere quando espandi un archivio che hai scaricato dal web o recuperi un repository git e l’autore originale ha commesso un errore durante la creazione di un file ma non lo ha individuato.
Il nostro strano file è uno di questi:
Se lo guardiamo nel browser dei file e premiamo “F2″ per rinominarlo, i caratteri non stampabili sono rappresentati da uno strano simbolo.
Puoi usare l’ -b
opzione (escape) per permetterti di vedere cosa contiene effettivamente il nome del file. Questa opzione fa sì ls
che vengano utilizzate le sequenze di escape del linguaggio di programmazione C per rappresentare i caratteri di controllo.
ls -b a*
Si scopre che il personaggio misterioso è un carattere di nuova riga, rappresentato in C come “\n”.
Ignorare i file
Per omettere alcuni file da un elenco, utilizzare l’ --hide
opzione. Supponiamo che tu non voglia vedere i file di backup “.bak” nell’elenco. Potresti usare questo comando:
ls
ls --hide=*.bak
I file “.bak” non sono inclusi nel secondo elenco.
L’elenco in formato lungo
L’ -l
opzione (elenco lungo) consente ls
di fornire informazioni dettagliate su ciascun file.
ls -l
Ci sono molte informazioni qui, quindi esaminiamole.
La prima cosa ls
che viene visualizzata è la dimensione totale di tutti i file nell’elenco. Quindi ogni file o directory viene visualizzato su una riga da sola.
La prima serie di dieci lettere e trattini indica il tipo di file, il proprietario, il gruppo e altre autorizzazioni del file.
Il primo carattere rappresenta il tipo di file. Sarà uno di:
- – : un file normale.
- b : un file speciale a blocchi.
- c : un file di caratteri speciali.
- d : una directory.
- l : un collegamento simbolico.
- n : un file di rete.
- p : una pipe con nome.
- s : una presa.
I successivi nove caratteri sono tre gruppi di tre caratteri visualizzati in modo contiguo. Ciascun gruppo di tre rappresenta le autorizzazioni di lettura, scrittura ed esecuzione, in questo ordine. Se l’autorizzazione viene concessa, sarà presente un r
, w
, o x
. Se l’autorizzazione non viene concessa, -
viene visualizzato un trattino.
Il primo set di tre caratteri rappresenta le autorizzazioni per il proprietario del file. Il secondo set di tre autorizzazioni è riservato ai membri del gruppo, mentre l’ultimo set di tre autorizzazioni riguarda gli altri.
A volte il permesso di esecuzione per il proprietario è rappresentato da un file s
. Questa è la parte setuid . Se è presente, significa che il file viene eseguito con i privilegi del proprietario del file, non dell’utente che esegue il file.
Il permesso di esecuzione per il gruppo può anche essere un file s
. Questo è il bit setgid . Quando viene applicato a un file, significa che il file verrà eseguito con i privilegi del gruppo dell’autore. Se utilizzato con una directory, tutti i file creati al suo interno prenderanno i permessi di gruppo dalla directory in cui vengono creati, non dall’utente che sta creando il file.
Il permesso di esecuzione per gli altri a volte può essere rappresentato da un file t
. Questa è la parte appiccicosa . Di solito viene applicato alle directory. Se viene impostato, indipendentemente dai privilegi di scrittura ed eseguibili impostati sui file nella directory, solo il proprietario del file, il proprietario della directory o l’utente root può rinominare o eliminare i file nella directory.
Un uso comune dello sticky bit è su cartelle come “/tmp”. Questo può essere scritto da tutti gli utenti del computer. La parte permanente della directory garantisce che gli utenti e i processi avviati dagli utenti possano solo rinominare o eliminare i propri file temporanei.
Possiamo vedere la parte appiccicosa nella directory “/tmp”. Notare l’uso dell’opzione -d
(directory). Ciò fa sì ls
che vengano riportati i dettagli della directory. Senza questa opzione, ls
riporterà i file all’interno della directory.
ls -l -d /tmp
Il numero che segue le autorizzazioni è il numero di collegamenti fisici al file o alla directory. Per un file, di solito è uno, ma se vengono creati altri collegamenti reali, questo numero aumenterà. Una directory in genere ha almeno due collegamenti reali. Uno è un collegamento a se stesso e l’altro è la voce nella directory principale.
Successivamente vengono visualizzati il nome del proprietario e del gruppo. Sono seguiti dalla dimensione del file e dalla data dell’ultima modifica del file. Infine viene fornito il nome del file.
Dimensioni dei file leggibili dall’uomo
Avere le dimensioni dei file in byte non è sempre conveniente. Per visualizzare le dimensioni dei file nelle unità più appropriate (kilobyte, megabyte, ecc.) utilizzare l’ -h
opzione (leggibile dall’uomo):
ls -l -h
Visualizzazione dei file nascosti
Per vedere i file nascosti, usa l’ -a
opzione (tutti):
ls -l -a
Le due voci “.”e “..”rappresentano rispettivamente la directory corrente e la directory principale. Un file chiamato “.base_settings” è ora visibile per la prima volta.
Omettendo. E. . dagli elenchi
Se non vuoi che la tua lista sia ingombrata dalle voci “.” e “..”, ma vuoi vedere i file nascosti, usa l’ -A
opzione (quasi tutte):
ls -l -A
Il file nascosto è ancora elencato, ma le voci “.” e “..” vengono soppresse.
Elencare le directory in modo ricorsivo
Per ls
elencare i file in tutte le sottodirectory utilizzare l’ -R
opzione (ricorsiva).
ls -l -R
ls
si fa strada attraverso l’intero albero delle directory sotto la directory iniziale ed elenca i file in ciascuna sottodirectory.
Visualizzazione dell’UID e del GID
Per visualizzare l’ID utente e l’ID gruppo invece del nome utente e del gruppo, utilizzare l’ -n
opzione (uid e gid numerici).
ls -n
Ordinamento degli elenchi
Puoi ordinare l’elenco per estensione, dimensione del file o ora di modifica. Non è necessario utilizzare queste opzioni con il formato di elenco lungo, ma di solito ha senso farlo. Se stai ordinando per dimensione del file, è opportuno vedere le dimensioni del file nell’elenco. Quando ordini per tipo di estensione, il formato dell’elenco lungo non è così importante.
Per ordinare per estensione, utilizzare l’ -X
opzione (ordina per estensione).
ls -X -1
Le directory vengono elencate per prime (nessuna estensione), poi seguono le altre in ordine alfabetico, in base alle estensioni.
Per ordinare in base alla dimensione del file, utilizzare l’ -S
opzione (ordina per dimensione del file).
ls -l -h -S
L’ordinamento va dal più grande al più piccolo.
Per ordinare l’elenco in base all’ora di modifica, utilizza l’ -t
opzione (ordina per ora di modifica).
ls -l -t
L’elenco è ordinato in base all’ora di modifica.
Se l’ora di modifica del file rientra nell’anno corrente, le informazioni visualizzate sono il mese, il giorno e l’ora. Se la data di modifica non rientra nell’anno corrente, le informazioni visualizzate sono il mese, il giorno e l’anno.
Un modo rapido per ottenere i file più recenti e quelli più vecchi in una directory è utilizzare ls
i comandi head
e .tail
Per ottenere il file o la directory più recente, utilizzare questo comando:
ls -t | head -1
Per ottenere il file o la directory più vecchi, utilizzare questo comando:
ls -t | tail -1
Per invertire l’ordinamento
Per invertire uno qualsiasi degli ordinamenti, utilizzare l’ -r
opzione (inversa).
ls -l -h -S -r
L’elenco è ora ordinato dal file più piccolo a quello più grande.
E c’è di più
Controlla la pagina man di ls
, ci sono molte altre opzioni . Alcuni di essi soddisfano casi d’uso un po’ oscuri, ma di tanto in tanto sarai felice di conoscerli.
Hai bisogno di vedere i timestamp dei file con la massima precisione che Linux può fornire? Utilizza l’opzione a tempo pieno:
ls --full-time
Forse vuoi vedere il numero di inode dei file? Usa l’opzione inode:
ls -i
Stai lavorando su uno schermo monocromatico e vuoi eliminare ogni rischio di confondere file con directory e collegamenti? Utilizza l’opzione di classificazione e ls
aggiungerà uno di questi a ciascuna voce dell’elenco:
- / : una directory.
- @ : Un collegamento simbolico.
- | : Una pipa con nome.
- = : Una presa.
- * : un file eseguibile
ls -F
Scava un po’. Scoprirai che ls
è una vena ricca e continuerai a scovare gemme.
Comandi di Linux |
|
File |
tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · guarda · stringhe · digita · rinomina · zip · decomprimi · monta · umount · installa · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · converti · rclone · shred · srm · scp · gzip · chattr · taglia · trova · umask · wc · tr |
Processi |
alias · schermo · top · nice · renice · progresso · strace · systemd · tmux · chsh · cronologia · at · batch · gratuito · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · mignolo · lsof · vmstat · timeout · wall · sì · kill · sleep · sudo · su · time · groupadd · usermod · gruppi · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · data · bg · fg · pidof · nohup · pmap |
Rete |
netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
Lascia un commento