Sådan bruger du ls-kommandoen til at vise filer og mapper på Linux

Vi bruger Linux ls-kommandoen hver dag uden at tænke over det. Det er en skam. Vær opmærksom på det, og du vil finde mange nyttige muligheder – inklusive nogle du bør tilføje til dit kommandolinjearsenal.

ls Viser filer og mapper

Kommandoen ls er sandsynligvis den første kommando, de fleste Linux-brugere støder på. De af os, der hænger rundt på kommandolinjen, bruger den dag ud og dag ind uden overhovedet at tænke over det. Det kan måske forklare, hvorfor der er mere i denne kommando, end de fleste brugere er klar over. Vi viser filer med det for at se, hvad der er i en mappe. Vi viser filer i langt format, når vi vil se på tilladelserne på en fil. Ud over det får det lidt overvejelser.

Kommandoen ls er en af ​​de kommandoer med et væld af muligheder. Måske er dette en del af problemet. Der er så mange muligheder, hvordan finkæmper du dem for at finde de nyttige? Og efter at have fundet dem, hvordan husker du dem så?

Nyttige permutationer af ls-kommandoen med deres strenge af muligheder og parametre er de perfekte kandidater til aliaser. Faktisk, i de fleste distributioner, er det, du tænker på som kommandoen “nøgen” ls, faktisk et alias. Typekommandoen kan blandt andet bruges til vise den underliggende definition af aliaser. Lad os se på definitionen af ​​ls:

type ls

–color=auto parametrene inkluderes automatisk, hver gang du bruger kommandoen ls. Det er det, der giver de forskellige farver til de forskellige filtyper i lister.

Simple ls Listings

Alle, der har brugt noget tid på at bruge Linux-terminalen, ved, at ls som standard viser filerne og mapperne i den aktuelle mappe.

ls

Hvis du vil have din fortegnelse produceret i en enkelt kolonne, skal du bruge -1 (én fil pr. linje):

ls -1

Vi vil diskutere det underligt udseende filnavn øverst på listen om et minut.

Brug af ls på forskellige mapper

For at få ls til at liste filerne i en anden mappe end den aktuelle mappe, skal du videregive stien til mappen til ls på kommandolinjen. Du kan også sende mere end én mappe til ls og få dem opført efter hinanden. Her beder vi ls om at liste filerne i to mapper, en kaldet “Hjælp” og den anden kaldet “gc_help.”

ls Help gc_help

Når ls har angivet indholdet af den første mappe, viser den indholdet af den anden. Den udskriver navnet på hver mappe, mens den behandler dem:

  Sådan deler du filer i en VirtualBox-maskine på Linux

Brug af filmønstre

Brug mønstermatchning for selektivt at angive et sæt filer. Spørgsmålstegnet “?” vil repræsentere ethvert enkelt tegn, og stjernen “*” vil repræsentere enhver streng af tegn. Brug dette format for at angive filer eller mapper, der har navne, der starter med “ip_”:

ls ip_*

Brug dette format for at få vist filer, der har filtypenavne “.c”:

ls *.c

Du kan også bruge ls med grep , og bruge grep’s mønstertilpasningsmuligheder. Lad os se efter alle filer, der har strengen “_pin_” i deres navn:

ls | grep _pin_

Dette er næsten det samme som at bruge ls alene med to jokertegn:

ls | grep _pin_
ls *_pin_*

Hvorfor næsten det samme? Bemærk de forskellige layouts. grep tvinger outputtet til et enkelt filnavn pr. linjeformat.

Ikke-udskrivende tegn

Det er muligt at finde dig selv med et filnavn, der har en ikke-udskrivning eller kontrol-karakter i sit filnavn. Dette kan typisk ske, når du udvider et arkiv, du har downloadet fra nettet eller hentet et git-lager, og den oprindelige forfatter lavede en fejl ved at oprette en fil, men ikke opdagede den.

Vores mærkelige fil er en af ​​disse:

Hvis vi ser på det i filbrowseren og trykker på “F2” for at omdøbe det, er de ikke-udskrivende tegn repræsenteret af et mærkeligt symbol.

Du kan bruge -b (escape) mulighed for at give dig mulighed for at se, hvad filnavnet faktisk indeholder. Denne mulighed får ls til at bruge escape-sekvenserne for C programmeringssprog at repræsentere kontrolkaraktererne.

ls -b a*

Den mystiske karakter afsløres som en nylinjekarakter, repræsenteret i C som “n.”

Ignorerer filer

For at få visse filer udeladt fra en liste, skal du bruge –hide-indstillingen. Antag, at du ikke ønsker at se backup-“.bak”-filerne i listen. Du kan bruge denne kommando:

ls
ls --hide=*.bak

“.bak”-filerne er ikke inkluderet i den anden liste.

Fortegnelsen i langt format

Indstillingen -l (lang liste) får ls til at give detaljerede oplysninger om hver fil.

ls -l

Der er en masse information her, så lad os gå igennem det.

Det første, der vises, er den samlede størrelse af alle filerne i listen. Derefter vises hver fil eller mappe på en linje for sig selv.

Det første sæt på ti bogstaver og bindestreger er filtypen og ejer-, gruppe- og andre filtilladelser.

Det allerførste tegn repræsenterer filtypen. Det bliver en af:

–: En almindelig fil.
b: En speciel blokfil.
c: En specialfil med tegn.
d: En mappe.
l: Et symbolsk link.
n: En netværksfil.
p: Et navngivet rør.
s: En stikkontakt.

De næste ni tegn er tre grupper af tre tegn, der vises sammenhængende. Hver gruppe på tre repræsenterer læse-, skrive- og udførelsestilladelserne i den rækkefølge. Hvis tilladelsen gives, vil der være en r, w eller x til stede. Hvis tilladelsen ikke gives, vises en bindestreg –.

  Sådan installeres Linux på en Chromebook med Crouton

Det første sæt af tre tegn er tilladelserne for filejeren. Det andet sæt af tre tilladelser er for gruppemedlemmer, og det sidste sæt af tre tilladelser er for andre.

Nogle gange er udførelsestilladelsen for ejeren repræsenteret af en s. Dette er setuid lidt. Hvis den er til stede, betyder det, at filen udføres med filejerens rettigheder, ikke brugeren, der udfører filen.

Udførelsestilladelsen for gruppen kan også være en s. Dette er setgid lidt. Når dette anvendes på en fil, betyder det, at filen vil blive eksekveret med rettighederne fra ejerens gruppe. Når de bruges med en mappe, vil alle filer, der er oprettet i den, tage deres gruppetilladelser fra den mappe, de bliver oprettet i, ikke fra den bruger, der opretter filen.

Udførelsestilladelsen for de andre kan nogle gange repræsenteres ved et t. Dette er klistret smule. Det anvendes normalt til mapper. Hvis dette er indstillet, uanset skrive- og eksekverbare rettigheder, der er indstillet på filerne i mappen, er det kun filejeren, mappeejeren eller rodbrugeren, der kan omdøbe eller slette filer i mappen.

En almindelig brug for den sticky bit er på mapper som “/tmp”. Dette kan skrives af alle brugere på computeren. Den klæbrige bit på mappen sikrer, at brugere – og processer lanceret af brugerne – kun kan omdøbe eller slette deres egne midlertidige filer.

Vi kan se den sticky bit på “/tmp”-mappen. Bemærk brugen af ​​-d (mappe) mulighed. Dette får ls til at rapportere om detaljerne i mappen. Uden denne mulighed vil ls rapportere om filerne i mappen.

ls -l -d /tmp

Nummeret efter tilladelserne er antallet af hårde links til filen eller mappen. For en fil er dette normalt én, men hvis der oprettes andre hårde links, vil dette antal stige. En mappe har typisk mindst to hårde links. Den ene er et link til sig selv, og den anden er dens indgang i dens overordnede mappe.

Navnet på ejeren og gruppen vises derefter. De efterfølges af filstørrelsen og datoen for den sidste ændring af filen. Til sidst gives filnavnet.

Filstørrelser, der kan læses af mennesker

Det er ikke altid praktisk at have filstørrelserne i bytes. For at se filstørrelserne i de mest passende enheder (Kilobytes, Megabytes osv.) skal du bruge indstillingen -h (læselig for mennesker):

ls -l -h

Viser skjulte filer

For at se skjulte filer skal du bruge muligheden -a (alle):

ls -l -a

De to poster “.” og “..” repræsenterer henholdsvis den aktuelle mappe og den overordnede mappe. En fil kaldet “.base_settings” er nu synlig for første gang.

  Sådan downloader du podcasts fra Linux-terminalen med Podfox

Udeladelse. og .. fra Listings

Hvis du ikke vil have din fortegnelse rodet med “.” og “..” indgange, men du ønsker at se skjulte filer, skal du bruge -A (næsten alle) muligheden:

ls -l -A

Den skjulte fil er stadig på listen, men “.” og “..” indtastninger undertrykkes.

Liste mapper rekursivt

For at få en liste over filerne i alle undermapper skal du bruge -R (rekursiv) mulighed

ls -l -R

ls arbejder sig gennem hele mappetræet under startmappen og viser filerne i hver undermappe.

Viser UID og GID

For at få vist bruger-id’et og gruppe-id’et i stedet for brugernavnet og gruppenavnet, skal du bruge -n (numerisk uid og gid).

ls -n

Sortering af lister

Du kan sortere fortegnelsen efter udvidelse, filstørrelse eller ændringstid. Disse muligheder behøver ikke at blive brugt med det lange listeformat, men det giver normalt mening at gøre det. Hvis du sorterer efter filstørrelse, giver det mening at se filstørrelserne i listen. Når du sorterer efter udvidelsestype, er det lange listeformat ikke så vigtigt.

For at sortere efter udvidelse skal du bruge -X (sortér efter udvidelse).

ls -X -1

Mapperne vises først (ingen udvidelser overhovedet), så følger resten i alfabetisk rækkefølge, i henhold til udvidelserne.

For at sortere efter filstørrelse skal du bruge -S (sortér efter filstørrelse).

ls -l -h -S

Sorteringsrækkefølgen er størst til mindst.

For at sortere fortegnelsen efter ændringstidspunkt skal du bruge -t (sortér efter ændringstidspunkt).

ls -l -t

Listen er sorteret efter ændringstiden.

Hvis filændringstiden er inden for det aktuelle år, er de viste oplysninger måned, dag og klokkeslæt. Hvis ændringsdatoen ikke var i det aktuelle år, er de oplysninger, der vises, måneden, dagen og året.

En hurtig måde at få de nyeste og ældste filer i en mappe er at bruge ls med hoved- og halekommandoer.

Brug denne kommando for at få den nyeste fil eller mappe:

ls -t | head -1

For at få den ældste fil eller mappe, brug denne kommando:

ls -t | tail -1

At vende sorteringsrækkefølgen

Brug indstillingen -r (omvendt) for at vende enhver af sorteringsrækkefølgerne.

ls -l -h -S -r

Listen er nu sorteret fra den mindste fil til den største fil.

Og der er mere

Tjek man-siden for ls, der er mange flere muligheder. Nogle af dem opfylder noget obskure use cases, men en gang imellem vil du være glad for, at du kender til dem.

Har du brug for at se filens tidsstempler med den maksimale præcision, som Linux kan levere? Brug fuldtidsmuligheden:

ls --full-time

Måske vil du se inodenummeret på filerne? Brug inode-indstillingen:

ls -i

Arbejder du på en monokrom skærm og ønsker at fjerne enhver risiko for forvirrende filer til mapper og links? Brug klassificer-indstillingen, og ls vil tilføje en af ​​disse til hver opslagspost:

/: En mappe.
@: Et symbollink.
|: Et navngivet rør.
=: En stikkontakt.
*: En eksekverbar fil

ls -F

Grav noget. Du vil opdage, at ls er en rig åre, og du vil blive ved med at finde ædelstene.