ls(1p)

Från Wiki.linux.se -Linux wikipedia på Svenska.
Version från den 18 april 2026 kl. 10.46 av Admin (diskussion | bidrag) (Skapade sidan med '= ls(1p) = == PROLOG == Denna manualsida är en del av POSIX Programmer's Manual. Linux-implementationen av detta gränssnitt kan skilja sig från den här beskrivningen. Se motsvarande Linux-manualsida för detaljer om Linux-beteende, eller notera att gränssnittet kanske inte är implementerat på Linux. == NAMN == '''ls''' — lista kataloginnehåll == SYNOPSIS == <code>ls [-ikqrs] [-glno] [-A|-a] [-C|-m|-x|-1] \</code> <code> [-F|-p] [-H|-L] [-R|-d] [-S|-f|-t...')
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

ls(1p)

PROLOG

Denna manualsida är en del av POSIX Programmer's Manual. Linux-implementationen av detta gränssnitt kan skilja sig från den här beskrivningen. Se motsvarande Linux-manualsida för detaljer om Linux-beteende, eller notera att gränssnittet kanske inte är implementerat på Linux.

NAMN

ls — lista kataloginnehåll

SYNOPSIS

ls [-ikqrs] [-glno] [-A|-a] [-C|-m|-x|-1] \ [-F|-p] [-H|-L] [-R|-d] [-S|-f|-t] [-c|-u] [fil ...]

BESKRIVNING

För varje operand som namnger en fil av annan typ än katalog eller symbolisk länk till en katalog ska ls skriva filnamnet samt eventuell begärd tillhörande information. För varje operand som namnger en fil av typen katalog ska ls skriva namnen på de filer som finns i katalogen samt eventuell begärd tillhörande information.

Filnamn som börjar med punkt (.) och tillhörande information ska inte skrivas ut om de inte uttryckligen refereras, om alternativet -A eller -a anges, eller om ett implementationsdefinierat villkor gör att de skrivs ut.

Om ett eller flera av alternativen -d, -F eller -l anges, och varken -H eller -L anges, ska ls för varje operand som namnger en symbolisk länk till en katalog skriva namnet på länken samt eventuell begärd tillhörande information. Om inget av alternativen -d, -F eller -l anges, eller om -H eller -L anges, ska ls för varje operand som namnger en symbolisk länk till en katalog skriva namnen på de filer som finns i katalogen samt eventuell begärd tillhörande information.

I varje fall där namn på filer i en katalog skrivs ut gäller att om katalogen innehåller symboliska länkar ska ls utvärdera filinformation och filtyp som tillhörande själva den symboliska länken, om inte alternativet -L anges.

Om inga operander anges ska ls bete sig som om en enda operand, punkt (.), hade angetts. Om fler än en operand anges ska ls skriva icke-katalogoperander först; katalog- och icke-katalogoperander ska sorteras separat enligt kollationssekvensen i aktuell lokal.

Närhelst ls sorterar filnamn eller sökvägar enligt kollationssekvensen i aktuell lokal, och denna kollationssekvens inte har en total ordning för alla tecken, bör filnamn eller sökvägar som jämförs lika därefter jämföras byte för byte med kollationssekvensen för POSIX-lokalen.

Verktyget ls ska upptäcka oändliga slingor, det vill säga när det går in i en tidigare besökt katalog som är en förfader till den senast påträffade filen. När en oändlig slinga upptäcks ska ls skriva ett diagnostiskt meddelande till standard error och antingen återhämta sin position i hierarkin eller avsluta.

ALTERNATIV

Verktyget ls ska följa Base Definitions-volymen i POSIX.1-2017, avsnitt 12.2, Utility Syntax Guidelines.

Följande alternativ ska stödjas:

-A
Skriv ut alla katalogposter, inklusive sådana vars namn börjar med punkt (.), men exklusive posterna punkt och punkt-punkt om de finns.
-C
Skriv ut i flera textkolumner med poster sorterade nedåt i kolumnerna enligt kollationssekvensen. Antalet textkolumner och kolumnavskiljare är ospecificerat, men bör anpassas till utdataenhetens egenskaper. Detta alternativ avaktiverar långt format.
-F
Följ inte symboliska länkar namngivna som operander om inte -H eller -L anges. Skriv ett snedstreck (/) direkt efter varje sökväg som är en katalog, en asterisk (*) efter varje som är körbar, ett lodrätt streck (|) efter varje som är en FIFO, och ett snabel-a (@) efter varje som är en symbolisk länk. För andra filtyper kan andra symboler skrivas.
-H
Utvärdera filinformation och filtyp för symboliska länkar angivna på kommandoraden som tillhörande filen som länken refererar till, inte länken själv; dock ska ls skriva själva länkens namn och inte namnet på filen länken refererar till.
-L
Utvärdera filinformation och filtyp för alla symboliska länkar, oavsett om de angivits på kommandoraden eller påträffas i en filhierarki, som tillhörande filen som länken refererar till, inte länken själv; dock ska ls skriva själva länkens namn och inte namnet på filen länken refererar till. När -L används tillsammans med -l ska innehållet i symboliska länkar skrivas i långt format.
-R
Lista underkataloger rekursivt. När en symbolisk länk till en katalog påträffas ska katalogen inte listas rekursivt om inte -L anges. Användning av -R med -d eller -f ger ospecificerade resultat.
-S
Sortera med filstorlek som primär nyckel i fallande ordning och filnamn enligt kollationssekvensen som sekundär nyckel i stigande ordning.
-a
Skriv ut alla katalogposter, inklusive sådana vars namn börjar med punkt (.).
-c
Använd tidpunkten för senaste ändring av filstatusinformation i stället för senaste ändring av själva filen för sortering (-t) eller utskrift (-l).
-d
Följ inte symboliska länkar namngivna som operander om inte -H eller -L anges. Behandla inte kataloger annorlunda än andra filtyper. Användning av -d med -R eller -f ger ospecificerade resultat.
-f
Lista poster i katalogoperander i den ordning de förekommer i katalogen. Beteendet för icke-katalogoperander är ospecificerat. Detta alternativ aktiverar -a. När -f anges ska förekomster av alternativen -r, -S och -t ignoreras och förekomster av -A, -g, -l, -n, -o och -s får ignoreras. Användning av -f med -R eller -d ger ospecificerade resultat.
-g
Aktivera alternativet -l, men skriv inte filens ägarnamn eller ägarnummer. Avaktivera alternativen -C, -m och -x.
-i
För varje fil, skriv filens serienummer.
-k
Sätt blockstorleken för alternativet -s och det blockantal per katalog som skrivs för alternativen -l, -n, -s, -g och -o till 1024 byte.
-l
Bokstaven ell. Följ inte symboliska länkar namngivna som operander om inte -H eller -L anges. Skriv ut i långt format. Avaktivera alternativen -C, -m och -x.
-m
Strömmande utdataformat; lista sökvägar tvärs över sidan, åtskilda av komma följt av blanksteg. Använd nyrad som listterminator och efter separatorsekvensen när det inte finns plats på raden för nästa post. Detta alternativ avaktiverar långt format.
-n
Aktivera alternativet -l, men skriv filens numeriska UID eller GID i stället för användar- eller gruppnamn. Avaktivera alternativen -C, -m och -x.
-o
Aktivera alternativet -l, men skriv inte filens gruppnamn eller gruppnummer. Avaktivera alternativen -C, -m och -x.
-p
Skriv ett snedstreck (/) efter varje filnamn om filen är en katalog.
-q
Tvinga varje förekomst av icke-utskrivbara tecken i filnamn och tabulatortecken att skrivas som frågetecken (?). Implementationer får tillhandahålla detta alternativ som standard om utmatningen går till en terminalenhet.
-r
Vänd sorteringsordningen för att få omvänd kollationssekvens, äldst först eller minsta filstorlek först beroende på andra angivna alternativ.
-s
Ange totalt antal filsystemblock som används av varje visad fil. Om -k också anges ska blockstorleken vara 1024 byte, annars är blockstorleken implementationsdefinierad.
-t
Sortera med senaste ändringstid som primär nyckel, senast ändrad först, och filnamn i kollationssekvensen som sekundär nyckel. För en symbolisk länk är den tid som används som sorteringsnyckel länken själv, om inte ls utvärderar dess filinformation som tillhörande filen som länken refererar till.
-u
Använd senaste åtkomsttid i stället för senaste ändringstid för filen för sortering (-t) eller utskrift (-l).
-x
Samma som -C, utom att flerkolumnsutdata produceras med poster sorterade tvärs över i stället för nedåt i kolumnerna. Detta alternativ avaktiverar långt format.
-1
Siffran ett. Tvinga utdata till en post per rad. Detta alternativ avaktiverar inte långt format.

Om ett alternativ som aktiverar långt format (-g, -l, -n, -o) anges tillsammans med ett alternativ som avaktiverar långt format (-C, -m, -x), ska detta inte betraktas som ett fel. Det sista av dessa alternativ som anges avgör om långt format ska användas.

Om -R, -d eller -f anges bestäms resultaten av kombinationen av dessa ömsesidigt uteslutande alternativ av respektive alternativs beskrivning ovan. Om fler än ett av andra alternativ i ömsesidigt uteslutande grupper anges ska detta inte betraktas som ett fel; det sista angivna alternativet i varje grupp avgör utdata.

Observera att om -t anges är -c och -u inte bara ömsesidigt uteslutande med varandra, utan också med -S när sorteringsordning ska bestämmas. Men även om -S anges efter alla förekomster av -c, -t och -u, avgör den sista användningen av -c eller -u vilken tidsstämpel som skrivs i långt format.

OPERANDER

Följande operand ska stödjas:

fil
En sökväg till en fil som ska skrivas. Om den angivna filen inte hittas ska ett diagnostiskt meddelande skrivas till standard error.

STANDARD IN

Används inte.

INDATAFILER

Inga.

MILJÖVARIABLER

Följande miljövariabler påverkar körningen av ls:

COLUMNS
Bestämmer användarens föredragna kolumnbredd för utskrift i flera textkolumner. Om variabeln innehåller en sträng som representerar ett decimalt heltal ska ls beräkna hur många textkolumner med sökvägar som ska skrivas baserat på denna bredd. Om COLUMNS inte är satt eller ogiltig ska ett implementationsdefinierat antal kolumnpositioner antas. Filnamn ska inte trunkeras för att passa in i flerkolumnsutdata.
LANG
Tillhandahåller standardvärde för internationaliseringsvariabler som är osatta eller tomma.
LC_ALL
Om satt till en icke-tom sträng åsidosätter den alla andra internationaliseringsvariabler.
LC_COLLATE
Bestämmer lokalen för teckenkollation vid bestämning av kollationssekvens för sökvägar.
LC_CTYPE
Bestämmer lokalen för tolkning av byteföljder som tecken samt vilka tecken som definieras som utskrivbara.
LC_MESSAGES
Bestämmer lokalen som används för format och innehåll i diagnostiska meddelanden till standard error.
LC_TIME
Bestämmer format och innehåll för datum- och tidssträngar som skrivs av ls.
NLSPATH
Bestämmer platsen för meddelandekataloger för behandling av LC_MESSAGES.
TZ
Bestämmer tidszon för datum- och tidssträngar som skrivs av ls. Om TZ inte är satt eller är tom används en ospecificerad standardtidszon.

ASYNKRONA HÄNDELSER

Standard.

STANDARD UTMATNING

Standardformatet ska vara att lista en post per rad till standard output; undantagen är terminaler eller när något av alternativen -C, -m eller -x anges. Om utmatningen går till en terminal är formatet implementationsdefinierat.

När -m anges ska formatet för sista elementet i listan vara:

"%s\n", <filnamn>

Formatet för varje annat element i listan ska vara:

"%s,%s", <filnamn>, <separator>

där separatorn, om nästa element inte får plats på aktuell radlängd, är en sträng med ett valfritt blanksteg och ett obligatoriskt nyradstecken; annars är den ett enda blanksteg.

Om -i anges ska filens serienummer skrivas före annan utmatning för motsvarande post.

Om -l anges ska följande information skrivas för filer som inte är tecken-specialfiler eller block-specialfiler:

"%s %u %s %s %u %s %s\n", med:

  • filläge
  • antal länkar
  • ägarnamn
  • gruppnamn
  • storlek
  • datum och tid
  • sökväg

Om -l anges ska följande information skrivas för tecken-specialfiler och block-specialfiler:

"%s %u %s %s %s %s %s\n", med:

  • filläge
  • antal länkar
  • ägarnamn
  • gruppnamn
  • enhetsinformation
  • datum och tid
  • sökväg

Om filen är en symbolisk länk och -L också anges ska denna information avse filen som länken löses upp till, utom att sökvägsfältet ska innehålla den symboliska länkens egen sökväg. Om filen är en symbolisk länk och -L inte anges ska informationen avse själva länken, och sökvägsfältet ska ha formen:

"%s -> %s"

Alternativen -n, -g och -o använder samma format som -l, men med utelämnade fält och tillhörande blanktecken.

Om ägarnamn eller gruppnamn inte kan bestämmas, eller om -n anges, ska de ersättas med motsvarande numeriska värden.

Storleksfältet ska innehålla det värde som skulle returneras i st_size-fältet i struct stat. För vissa filtyper är detta värde ospecificerat.

Datum- och tidsfältet ska innehålla relevant datum och tidsstämpel för senaste ändring av filen. I POSIX-lokalen ska fältet motsvara utmatningen från:

date "+%b %e %H:%M"

om filen ändrats under de senaste sex månaderna, eller:

date "+%b %e %Y"

om filen inte ändrats under de senaste sex månaderna eller om ändringsdatumet ligger i framtiden.

Om sökvägen angavs som operand ska den skrivas som angiven.

Filläge

Filläget som skrivs med -l, -n, -g och -o ska bestå av formen:

"%c%s%s%s%s"

med:

  • posttyp
  • ägarens rättigheter
  • gruppens rättigheter
  • andras rättigheter
  • valfri markering för alternativ åtkomstmetod

Posttyptecknet ska beskriva filtypen, till exempel:

  • d — katalog
  • b — blockspecialfil
  • c — teckenspecialfil
  • l — symbolisk länk
  • p — FIFO
  • - — vanlig fil

Implementationer får lägga till andra tecken för ytterligare filtyper.

De följande tre fälten ska vara tre tecken vardera och ange läs-, skriv- och kör-/sökrättigheter för ägare, grupp och andra.

Om något av alternativen -l, -n, -s, -g eller -o anges ska varje lista över filer i en katalog föregås av en statusrad som anger antal filsystemblock som upptas av filerna i katalogen, i enheter om 512 byte om inte -k anges, eller 1024 byte om -k anges.

I POSIX-lokalen ska formatet vara:

"total %u\n"

Om mer än en katalog, eller en kombination av icke-katalogfiler och kataloger, skrivs ut, antingen genom flera operander eller med -R, ska varje fillista inom en katalog föregås av:

"\n%s:\n"

Om detta är det första som skrivs ut ska den första nyraden inte skrivas.

Om -s anges ska varje fil skrivas med antalet block som används av filen. Tillsammans med -C, -1, -m eller -x ska talet och ett blanksteg stå före filnamnet; med -l, -n, -g eller -o ska de stå före varje rad som beskriver en fil.

STANDARD FEL

Standard error ska endast användas för diagnostiska meddelanden.

UTDATAFILER

Inga.

UTÖKAD BESKRIVNING

Ingen.

AVSLUTNINGSSTATUS

Följande avslutningsvärden ska returneras:

  • 0 — lyckad körning
  • >0 — ett fel inträffade

KONSEKVENSER AV FEL

Standard.

Följande avsnitt är informativa.

ANVÄNDNING

Många implementationer använder likhetstecken (=) för att beteckna sockets bundna till filsystemet för alternativet -F. På liknande sätt använder många historiska implementationer tecknet s för att beteckna sockets som posttyptecken för alternativet -l.

Det är svårt för ett program att använda alla delar av fillägesfältet i ls -l på ett portabelt sätt. Vissa filtyper och körbarhetsbitar garanteras inte vara exakt som visat, eftersom implementationer kan ha utökningar. Program kan använda detta fält direkt i utskrifter till användare eller promptar, men åtgärder baserade på dess innehåll bör i allmänhet i stället överlåtas till verktyget test.

Utmatningen från ls, särskilt med -l och relaterade alternativ, innehåller information som logiskt skulle kunna användas av verktyg som chmod och touch för att återställa filer till ett känt tillstånd. Informationen presenteras dock i ett format som inte kan användas direkt av dessa verktyg eller lätt översättas till ett användbart format. Ett extra tecken har lagts till i slutet av rättighetssträngen så att program åtminstone får en indikation på att de kan befinna sig i ett område de inte förstår.

Som med många verktyg som hanterar filnamn måste utdata från ls för flera filer eller i långt listformat användas försiktigt på system där filnamn kan innehålla inbäddade blanktecken. System och systemadministratörer bör införa policyer och användarutbildning som begränsar användningen av sådana filnamn.

Antalet diskblock som rapporteras för en fil varierar beroende på underliggande filsystemtyp, blockstorleksenheter som rapporteras och metoden för att beräkna blockantalet.

EXEMPEL

Ett exempel på ett litet katalogträd som listas fullständigt med ls -laRF a i POSIX-lokalen:

total 11
drwxr-xr-x   3 fox      prog          64 Jul  4 12:07 ./
drwxrwxrwx   4 fox      prog        3264 Jul  4 12:09 ../
drwxr-xr-x   2 fox      prog          48 Jul  4 12:07 b/
-rwxr--r--   1 fox      prog         572 Jul  4 12:07 foo*

a/b:
total 4
drwxr-xr-x   2 fox      prog          48 Jul  4 12:07 ./
drwxr-xr-x   3 fox      prog          64 Jul  4 12:07 ../
-rw-r--r--   1 fox      prog         700 Jul  4 12:07 bar

MOTIVERING

Vissa historiska implementationer av verktyget ls visar alla poster i en katalog utom punkt och punkt-punkt när en superanvändare anropar ls utan alternativet -a. När vanliga användare anropar ls utan -a bör de inte se information om filer vars namn börjar med punkt om de inte uttryckligen angivits som operander.

Implementationer förväntas kunna traversera godtyckliga djup när alternativet -R behandlas. Den enda begränsningen på djup bör vara tillgången på fysisk lagring för att hålla reda på ännu inte traverserade kataloger.

Alternativet -1 fanns historiskt bara i BSD och BSD-liknande implementationer. Det krävs i denna version av POSIX.1-2017 så att kompatibla program kan säkerställa en post per rad, även när utmatningen går till en terminal.

Alternativet -S lades till i Issue 7 men hade tillhandahållits av flera implementationer under många år. Beskrivningen i standarden dokumenterar historisk praxis, men stämmer inte helt överens med mycket dokumentation som beskrev dess beteende.

Denna standard är ofta tyst om vad som händer när ömsesidigt uteslutande alternativ anges. Förutom -R, -d och -f måste ls acceptera flera alternativ från varje ömsesidigt uteslutande grupp utan att betrakta det som fel, och använda beteendet från det sista alternativet i varje grupp. Eftersom ls är ett av de mest aliaserade kommandona är det viktigt att implementationen beter sig intuitivt.

Alternativen -g, -l, -n och -o är inte ömsesidigt uteslutande. De aktiverar alla långt format och samverkar för att avgöra om filens ägare eller grupp skrivs, och om de skrivs som namn eller numeriskt UID/GID.

Tidigare versioner av denna standard beskrev inte BSD-alternativet -A. Det har lagts till på grund av dess utbredda implementation.

Implementationer får göra -q till standard för terminaler för att förhindra trojan horse-attacker mot terminaler med speciella escape-sekvenser.

Ett tidigt förslag specificerade att markeringen för alternativ åtkomstmetod måste vara + om sådan metod användes och blanktecken annars. Detta ändrades till blanktecken om ingen används och ett enda utskrivbart tecken om en används, av flera skäl, bland annat historiska implementationer och framtida behov av att kunna skilja mellan flera alternativa åtkomstmetoder.

Tidigare versioner av denna standard hade inte alternativet -k, vilket innebar att -s inte kunde användas portabelt eftersom dess blockstorlek var implementationsdefinierad, och att enheterna i ls -l var fasta till 512 byte. Alternativet -k lades till för att göra -s portabelt användbart och för konsekvensens skull också ändra dessa enheter till 1024 byte.

Fältet för datum och tid i formatet -l specificeras endast för POSIX-lokalen. I andra lokaler kan formatet vara annorlunda.

FRAMTIDA UTVECKLING

Att tillåta -f att ignorera alternativen -A, -g, -l, -n, -o och -s kan tas bort i en framtida version.

En framtida version av denna standard kan kräva att om kollationssekvensen för aktuell lokal inte har en total ordning för alla tecken, så ska filnamn eller sökvägar som jämförs lika därefter jämföras byte för byte med kollationssekvensen för POSIX-lokalen.

SE ÄVEN

The Base Definitions volume of POSIX.1-2017, Section 7.3.2, LC_COLLATE, Section 4.5, File Access Permissions, Chapter 8, Environment Variables, Section 12.2, Utility Syntax Guidelines, sys_stat.h(0p)

The System Interfaces volume of POSIX.1-2017, fstatat(3p)

UPPHOVSRÄTT

Delar av denna text är återgivna och reproducerade i elektronisk form från IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, copyright (C) 2018 av Institute of Electrical and Electronics Engineers, Inc och The Open Group.

Om det finns någon avvikelse mellan denna version och den ursprungliga standarden från IEEE och The Open Group, är originalstandarden det styrande dokumentet.

Eventuella typografiska eller formateringsfel i denna sida har sannolikt uppstått vid konverteringen av källfilerna till manualsideformat.