Come usare il comando ls per elencare file e directory in Linux

Contenuti

Una finestra di terminale su un laptop Linux.

Usiamo Linux ls comanda ogni giorno senza pensarci. È un peccato. Dategli un po' di attenzione e troverete molte opzioni utili, inclusi alcuni che dovresti aggiungere al tuo arsenale da riga di comando.

ls elenca file e directory

il ls Il comando è probabilmente il primo comando che incontra la maggior parte degli utenti Linux. Quelli di noi che si aggirano intorno alla riga di comando lo usano giorno dopo giorno senza nemmeno pensarci.. Questo potrebbe spiegare perché in questo comando c'è di più di quanto la maggior parte degli utenti si renda conto. Elenchiamo i file con esso per vedere cosa c'è in una directory. Elenchiamo i file in formato lungo quando vogliamo vedere i permessi su un file. Oltre a questo, riceve poca considerazione.

il ls comando è uno di quei comandi con molte alternative. Forse questo è parte del problema. Ci sono così tante opzioni, Come li esamini per trovare l'utile?? E dopo averli trovati, Come li ricordi??

Permutazioni utili di ls Il comando con le sue stringhe e parametri alternativi sono i candidati perfetti per gli alias. In realtà, nella maggior parte delle distribuzioni, cosa consideri “nudo” ls comando è in realtà un alias. Tra l'altro, il type Il comando può essere usato per mostra la definizione sottostante di alias. Diamo un'occhiata alla definizione di ls:

digita ls

il --color=auto I 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.

IMPARENTATO: Come creare alias e funzioni di shell in Linux

Elenchi semplici di ls

Tutti coloro che hanno trascorso del tempo utilizzando il terminale Linux lo sanno, per impostazione predefinita, ls elenca file e directory nella directory corrente.

ls

Se vuoi che il tuo annuncio sia in una singola colonna, Utilizzare il -1 (un file per riga) opzione:

ls -1

Discuteremo di quel nome di file dall'aspetto strano in cima alla lista tra un minuto..

Utilizzo di ls in directory diverse

Avere ls elenca i file in una directory diversa dalla directory corrente, passa il percorso della directory a ls sulla riga di comando. Puoi anche passare più di una directory a lse farli elencare uno dopo l'altro. Qui stiamo chiedendo ls per elencare i file in due directory, uno chiamato “Aiuto” e l'altro chiamato “gc_help”.

ls Aiuto gc_help

quando ls ha elencato il contenuto della prima directory elenca il contenuto della seconda. Stampa il nome di ogni directory mentre le elabori:

Nome della directory che viene visualizzato prima dell'elenco dei contenuti.

Usa modelli di file

Per elencare selettivamente un insieme di file, usa la corrispondenza del modello. Il punto interrogativo “?“Rappresenterà qualsiasi carattere e l'asterisco”*"Rappresenterà qualsiasi stringa di caratteri. Per elencare file o directory con nomi che iniziano con “ip_”, use este formato:

ls ip_ *

Per elencare i file con estensioni “.C”, usa questo formato:

ls *.c

Puoi anche usare ls insieme a grep , io uso grep'S capacità di corrispondenza dei modelli. Cerchiamo i file che hanno la stringa “_pin_” per tuo conto:

ls | grep _pin_

Questo è quasi lo stesso che usare ls da solo, con due jolly:

ls | grep _pin_
ls * _pin_ *

Come mai quasi lo stesso? Si prega di notare i diversi design. grep forza l'output su un singolo nome file per formato riga.

Caratteri non stampati

Potresti imbatterti in un nome di file che ha un carattere non stampabile o di controllo nel nome del tuo file. Generalmente, questo può accadere quando espandi un file che hai scaricato dal web o recuperi un repository da git, e l'autore originale ha commesso un errore creando un file ma non lo ha rilevato.

Il nostro strano file è uno di questi:

Se lo guardiamo nel browser dei file e premiamo "F2" per rinominarlo, i caratteri non stampati sono rappresentati da uno strano simbolo.

Nome del file con un carattere di controllo al suo interno, nella finestra di dialogo Rinomina

Puoi usare il -b (fuga) per farti vedere cosa contiene effettivamente il nome del file. Questa opzione fa sì che ls usa sequenze di escape da linguaggio di programmazione C per rappresentare i caratteri di controllo.

ls -b a*

Il misterioso personaggio viene rivelato come un nuovo personaggio di linea, rappresentato in C come ” n”.

Ignorando i file

Per omettere determinati file da un elenco, utilizzare il --hide opzione. Supponiamo di non voler vedere i file ".bak" di backup nell'elenco. È possibile utilizzare questo comando:

ls
ls --hide=*.bak

I file ".bak" non sono inclusi nel secondo elenco.

L'elenco di lunga durata

il -l (lunga lista) cause di opzione ls Per fornire informazioni dettagliate su ciascun file.

ls -l

Ci sono molte informazioni qui, quindi analizziamolo.

La prima cosa ls L'esempio è la dimensione totale di tutti i file nell'elenco. Dopo, Ogni file o directory viene visualizzato su una riga da solo.

La prima serie di dieci lettere e trattini è il tipo di file e il proprietario, permessi di gruppo e altri file.

Il primo carattere rappresenta il tipo di file. Sarà uno di:

  • : Un file normale.
  • B: Un file di blocco speciale.
  • C: Un file di caratteri speciali.
  • D: una directory.
  • io: Un collegamento simbolico.
  • Nord: Un file di rete.
  • pagina: Una pipa con un nome.
  • S: Una spina.

I successivi nove caratteri sono tre gruppi di tre caratteri visualizzati in modo contiguo. Ogni gruppo di tre rappresenta i permessi di lettura, scrittura ed esecuzione, in questo ordine. Se il permesso è concesso, ci sarà un r, w, oh x regalo. Se il permesso non viene concesso, un trattino - mostra.

Il primo set di tre caratteri sono i permessi del proprietario del file. Il secondo set di tre autorizzazioni è per i membri del gruppo e l'ultimo set di tre autorizzazioni è per gli altri.

Qualche volta, il permesso di esecuzione per il proprietario è rappresentato da a s. Questo è il setuid poco. Se presente, significa che il file viene eseguito con i privilegi del proprietario del file, non dell'utente che lo gestisce.

Esegui il permesso per il gruppo può anche essere un s. Questo è il setgid poco. Quando questo viene applicato a un file, significa che il file verrà eseguito con i privilegi del gruppo del proprietario. Se usato con una directory, qualsiasi file creato al suo interno prenderà i suoi permessi di gruppo dal directory vengono creati in, non dall'utente che sta creando il file.

L'autorizzazione di esecuzione per gli altri a volte può essere rappresentata da a t. Questo è il bit appiccicoso. Solitamente applicato alle directory. Se impostato, indipendentemente dai privilegi di scrittura ed esecuzione impostati sui file nella directory, solo il proprietario del file, il proprietario della directory o l'utente root può rinominare o rimuovere i file dalla directory.

Un uso comune dello sticky bit è in cartelle come "/ tmp". Tutti gli utenti di computer possono digitarlo. La parte adesiva nella directory garantisce che gli utenti (e processi avviati dall'utente) possono solo rinominare o rimuovere i propri file temporanei.

Possiamo vedere lo sticky bit nella directory "/ tmp". Notare l'uso del -d opzione (directory). Questo causa ls per segnalare i dettagli della directory. Senza questa opzione, ls riporterà sui file all'interno della directory.

ls -l -d / tmp

IMPARENTATO: Come usare il comando chmod in Linux

Il numero che segue le autorizzazioni è il numero di collegamenti fisici al file o alla directory. Per un file, questo di solito è uno, ma se vengono creati altri collegamenti fisici, questo numero aumenterà. Generalmente, una directory ha almeno due collegamenti fisici. Uno è un collegamento a se stesso e l'altro è la sua voce nella sua home directory..

Prossimo, vengono visualizzati il ​​nome del proprietario e il gruppo. Questo è seguito dalla dimensione del file e dalla data dell'ultima modifica del file. Finire, 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, eccetera.) usa el -h opzione (leggibile dagli umani):

ls -l -h

Mostra file nascosti

Per visualizzare i file nascosti, usa el -a (Tutto quanto) opzione:

ls -l -a

Le due voci “.” e “..” rappresentano la directory corrente e la home directory, rispettivamente. Un file chiamato “.base_settings” ora visibile per la prima volta.

saltare. e .. di annunci

Se non vuoi che il tuo annuncio sia affollato con il “.” e biglietti “..”, ma vuoi vedere i file nascosti, utilizzare il -A (quasi tutto) opzione:

ls -l -A

Il file nascosto appare ancora nell'elenco, ma “.” e le voci vengono eliminate “..”.

Elenco delle directory in modo ricorsivo

Avere ls elenca i file in tutte le sottodirectory usa il -R opzione (ricorsivo)

ls -l -R

ls attraversa l'intero albero di directory sotto la directory home ed elenca i file in ogni sottodirectory.

ls output che elenca le directory in modo ricorsivo

Visualizzazione UID e GID

Per visualizzare l'ID utente e l'ID gruppo anziché il nome utente e il nome gruppo, Utilizzare il -n (uid numerico e gid) opzione.

ls -n

Ordina gli elenchi

Puoi ordinare l'elenco per estensione, dimensione del file o data di modifica. Queste opzioni non devono essere utilizzate con il formato elenco lungo, ma in generale ha senso farlo. Se stai ordinando per dimensione del file, ha senso vedere le dimensioni dei file nell'elenco. Quando si ordina per tipo di estensione, il formato dell'elenco lungo non è così importante.

Per ordinare per estensione, usa el -X (ordina per estensione) opzione.

ls -X -1

Le directory sono elencate per prime (nessuna estensione) e poi il resto segue in ordine alfabetico, secondo le estensioni.

Per ordinare in base alla dimensione del file, usa el -S (ordina per dimensione del file).

ls -l -h -S

L'ordinamento va dal più alto al più basso.

Per ordinare l'elenco per ora di modifica, usa el -t (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 in corso, le informazioni visualizzate sono il mese, il giorno e l'ora. Se la data di modifica non era nell'anno in corso, le informazioni visualizzate sono il mese, il giorno e l'anno.

Un modo rapido per ottenere i file più recenti e meno recenti in una directory è usare ls con il head e tail comandi.

Per ottenere l'ultimo file o directory, usa questo comando:

ls -t | testa -1

Per ottenere il file o la directory più vecchi, usa questo comando:

ls -t | coda -1

Per invertire l'ordinamento

Per invertire uno qualsiasi degli ordinamenti, Utilizzare il -r Opzione (inversione).

ls -l -h -S -r

L'elenco è ora ordinato dal file più piccolo al file più grande.

E c'è di più

Vedi la pagina man per ls, ci sono molte altre opzioni. Alcuni di loro soddisfano casi d'uso poco conosciuti, ma a volte, sarà felice di conoscerti.

Hai bisogno di visualizzare i timestamp dei file con la precisione che può fornire Linux?? Usa l'opzione a tempo pieno:

ls --a tempo pieno

Forse vuoi vedere il numero di inode dei file? Usa l'opzione inode:

ls -i

Stai lavorando su uno schermo monocromatico e vuoi rimuovere tutti i rischi di confondere i file con directory e collegamenti?? Usa l'opzione di ordinamento e ls aggiungerà uno di questi a ciascuna voce nell'elenco:

  • /: una directory.
  • @: Un collegamento simbolico.
  • |: Una pipa con un nome.
  • =: Una spina.
  • *: File eseguibili
ls -F

Fare qualche ricerca. Scoprirai che ls è una vena ricca, e continuerai a spuntare gemme.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.