Ls

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 22. října 2018; kontroly vyžadují 10 úprav .

ls (dir, vdir) je unixový nástroj , který tiskne obsah adresářů na standardní výstup .

Syntaxe

ls [ možnosti ] [ soubor ... ] dir [ soubor ... ] vdir [ soubor ... ]

Popis

Příkaz lsnejprve vypíše všechny soubory (nikoli adresáře) uvedené na příkazovém řádku a poté vypíše všechny soubory v adresářích uvedených na příkazovém řádku. Pokud není zadán žádný soubor, výchozí je . (aktuální adresář). Tato volba -dzpůsobí , že lsargumenty adresáře nebudou považovány za adresáře. Pouze soubory, které nezačínají na . nebo všechny soubory , pokud je tato možnost dána -a.

Každý seznam souborů (pro soubory, které nejsou adresáři a pro každý adresář obsahující seznam souborů) je řazen samostatně v abecedním pořadí aktuálního národního prostředí ( locale ). Když je tato možnost zadaná -l, před každým seznamem je uveden souhrnný řádek s celkovou velikostí všech souborů v seznamu, měřenou v blocích (výchozí velikost bloku je 1024 bajtů a lze ji změnit pomocí možnosti --block-size).

Výsledky se vytisknou na standardní výstup , jeden soubor na řádek, pokud -Cnení u této možnosti určen vícesloupcový výstup. Při výstupu na terminál však není definováno, zda bude výstup v jednom sloupci nebo v několika. -1Volby a lze použít k nastavení jednosloupcového nebo vícesloupcového výstupu -C.

Seznam adresářů v aktuálním adresáři můžete získat příkazem:

ls -F | grep / | sed 's/\///g' #nebo tak ls -d */ #finally adresářový strom rekurzivně ls -R | grep ": $ " | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/ |/'

POSIX klíče

-C Vytiskne seznam souborů ve svisle seřazených sloupcích.

-F přípona `/' pro každý název adresáře  , ,,|' pro každý název FIFO a pro každý spustitelný soubor `*'.

-R - povolit rekurzivní výpis adresářů.

-a - zahrnout do seznamu soubory s názvem začínajícím tečkou (zobrazit skryté soubory).

-c - použijte při řazení (při zadání volby -t nebo -l) čas, kdy byl stav souboru změněn, místo času, kdy byl soubor naposledy upraven.

-d Zobrazí názvy adresářů, jako by to byly běžné soubory, místo zobrazení jejich obsahu.

-i před výstup pro každý soubor přidá jeho sériové číslo ( číslo inodu ).

-l Vytiskne (ve formátu s jedním sloupcem) typ souboru, oprávnění k souboru, počet odkazů na soubor, jméno vlastníka, název skupiny, velikost souboru (v bajtech), časové razítko a název souboru.

Typy souborů mohou nabývat následujících hodnot: - pro běžný soubor, d pro adresář, b pro blokové zařízení, c pro znakové zařízení, l pro symbolický odkaz, p pro FIFO a s pro soket .

Ve výchozím nastavení je časovým razítkem čas poslední změny; volby -c a -u vám umožňují vybrat dvě další časová razítka. U souborů zařízení je pole velikosti obvykle nahrazeno hlavními a vedlejšími čísly zařízení.

-q - místo netisknutelných znaků v názvu souboru budou do výstupu vloženy otazníky. (Tato možnost je ve výchozím nastavení povolena při výstupu na terminál.)

-r - řazení v obráceném pořadí.

-t Seřadit podle zobrazeného časového razítka.

-u - použije se při řazení (volba -t) nebo vypisování (volba -l) času posledního přístupu k souboru místo času poslední úpravy souboru.

-1 — zobrazení ve formátu jednoho sloupce.

-- - ukončí seznam klíčů.

Podrobnosti o verzi GNU

Pokud je standardním výstupem terminál, pak je výstup ve vícesloupcovém formátu (vertikálně řazený).

GNU klíče

-1, --format=single-column - výstup jednoho souboru na řádek. Tato možnost je standardně povolena, pokud standardní výstup není terminál.

-a, --all Vypíše všechny soubory v adresářích, včetně skrytých souborů, které začínají tečkou.

-b, --escape, --quoting-style=escape Nahrazuje negrafické znaky v názvech souborů pomocí alfanumerických a -Q sekvencí, kromě toho, že názvy souborů nejsou uzavřeny do dvojitých uvozovek.

-c, --time=ctime, --time=stav Seřadit obsah adresáře podle času, kdy se změnil stav souboru (pole ,ctime' v ​​inode). Je-li dlouhý formát zadán pomocí volby -l, vytiskne místo času úpravy souboru čas změny stavu souboru.

-d, --directory Vytiskne názvy adresářů, jako by to byly běžné soubory, namísto zobrazení jejich obsahu.

-f - netřídit obsah adresáře; výstupní soubory v pořadí, v jakém jsou zapsány na disk. Tato volba také povoluje -a a -U a zakazuje -l, --color, -s a -t, pokud byly zadány před -f.

-g - ignorováno; potřebné pro kompatibilitu s Unixem .

-h, --human-readable Ke každé velikosti souboru připojí písmeno velikosti, například M pro binární megabajty (` mebibajty '). (Novinka ve fileutils-4.0.)

-i, --inode Vypíše číslo inodu (také nazývané sériové číslo souboru a číslo inodu) každého souboru vlevo od jeho názvu. (Toto číslo jednoznačně identifikuje každý soubor v každém systému souborů)

-k, --kilobajty - pokud jsou zadány velikosti souborů, uveďte je v kilobajtech .

-l, --format=long, --format=verbose - kromě názvu každého souboru také typ souboru, oprávnění k souboru, počet odkazů na soubor, jméno vlastníka, název skupiny, velikost souboru v bajtech a časové razítko se zobrazí (čas, kdy byl soubor naposledy upraven, pokud není uvedeno jinak). U souborů s časem větším než před 6 měsíci nebo více než 1 hodina do budoucnosti obsahuje časové razítko místo denní doby rok.

Každému adresáři se seznamem jeho obsahu předchází řetězec `total blocks', kde bloky jsou celkové místo na disku používané všemi soubory v daném adresáři. Výchozí velikost bloku je 1024 bajtů; pokud je nastavena proměnná prostředí POSIXLY_CORRECT, pak se použije velikost bloku 512 bajtů (pokud není zadaná volba -k). bloky počítá každý pevný odkaz zvlášť; nelze jinak nastavit pomocí argumentů. Oprávnění se zobrazují v téměř normální podobě znaků, ale ls kombinuje několik bitů do třetího znaku každé sady oprávnění:

  • s - Bit setuid nebo setgid je nastaven spolu s odpovídajícím bitem oprávnění ke spuštění.
  • S - Bit setuid nebo setgid je nastaven, ale odpovídající bit oprávnění ke spuštění není nastaven.
  • t - sticky bit je nastaven spolu s bitem oprávnění ke spuštění ostatními.
  • T - Sticky bit je nastaven, ale bit nemůže být proveden ostatními.
  • x - Bit oprávnění ke spuštění je nastaven a žádná z výše uvedených podmínek není splněna.
  •  — — ve všech ostatních případech.

-m, --format=čárky — Seznam souborů na řádku s co největším počtem názvů souborů na řádek, přičemž názvy oddělte čárkou a mezerou.

-n, --numeric-uid-gid Uveďte číselné UID a GID namísto jmen vlastníka a skupiny.

-o Použijte dlouhý formát, ale nezobrazujte informace o skupině. Tato volba je ekvivalentní --format=long --no-group a je poskytována pro kompatibilitu s jinými verzemi ls.

-p, --typ-souboru, --indicator-style=typ-souboru Ke každému souboru přidá znak označující typ souboru. Tato volba je podobná -F, kromě toho, že spustitelné soubory nejsou označeny příznakem. (Ve fileutils-4.0 je volba --file-type ekvivalentní s --classify.)

-q, --hide-control-chars Skryje v názvu souboru otazníky místo negrafických znaků. Tato možnost je ve výchozím nastavení povolena.

-r, --reverse seřadí obsah adresáře v obráceném pořadí.

-s, --size - vytiskne velikost každého souboru v blocích po 1024 bajtech vlevo od názvu souboru. Pokud je nastavena proměnná prostředí POSIXLY_CORRECT, použije se velikost bloku 512, pokud není zadána volba -k.

-t, --sort=time seřazuje podle času poslední úpravy (pole `mtime' v ​​inodu) namísto řazení podle abecedy. Jako první se zobrazí nejnovější soubory.

-u, --time=atime, --time=access, --time=use řazení podle času, kdy byl soubor naposledy otevřen, namísto času, kdy byl naposledy upraven (pole ,atime' v ​​inode ). Pokud je zadán dlouhý výstupní formát, vytiskne čas posledního přístupu místo času poslední úpravy.

-v - řazení podle čísla verze souborů. To bere v úvahu, že názvy souborů často obsahují čísla verzí nebo pořadová čísla. Standardní funkce řazení obvykle neposkytují řazení, které by člověk mohl očekávat, protože řazení je založeno na porovnání znaků po znaku. Řazení podle verze tento problém řeší a je užitečné zejména při procházení adresářů, které obsahují mnoho souborů, které mají v názvu číslo verze. Například:

> ls -1 > ls -1v foo.zml-1.gz foo.zml-1.gz foo.zml-100.gz foo.zml-12.gz foo.zml-12.gz foo.zml-25.gz foo.zml-25.gz foo.zml-100.gz

Číselné části s úvodními nulami jsou definovány jako menší:

> ls -1 > ls -1v abc-1.007.tgz abc-1.007.tgz abc-1.012b.tgz abc-1.01a.tgz abc-1.01a.tgz abc-1.012b.tgz

-w, --width cols - Přiřadí výstup obrazovky sloupcům cols. Ve výchozím nastavení, pokud je to možné, je tato hodnota načtena z ovladače terminálu; jinak se použije hodnota proměnné prostředí COLUMNS, pokud je nastavena; jinak je výchozí hodnota 80.

-x, --format=across, --format=horizontální - zobrazí seznam souborů v režimu více sloupců, seřazené vodorovně.

-A, --almost-all vypíše všechny soubory kromě `.' a „...“.

-B, --ignore-backups Nezobrazovat soubory končící na `~', pokud není uvedeno na příkazovém řádku.

-C, --format=vertical - výstupní soubory ve vícesloupcovém režimu, seřazené svisle. Tato možnost je standardně nastavena, pokud je standardním výstupem terminál. Tato možnost je vždy standardně nastavena pro programy dir a d.

-D, --dired - v dlouhém formátu (-l), za hlavním výstupem vypíše další řádek ve tvaru: //DIRED// BEG1 END1 BEG2 END2 ...

Zde BEGn a ENDn jsou celá čísla bez znaménka, která pro každý záznam označují bajtovou pozici začátku a konce každého souboru. Emacs tedy může snadno najít jména, i když obsahují neobvyklé znaky, jako jsou mezery nebo nové řádky.

Pokud jsou adresáře zobrazeny rekurzivně (-R), vytiskne se podobný řádek za každým podadresářem: //SUBDIRED// BEG1 END1 ...

-F, --classify, --indicator-style=classify Ke každému souboru připojí znak označující jeho typ. U běžných spustitelných souborů je to `*'. `/' je přidáno pro adresář, `|' pro FIFO, `@' pro symbolické odkazy, `=' pro sockety, pro běžné soubory není přidáno nic.

-G, --no-group Nezobrazovat informace o skupině v dlouhém výstupním formátu.

-H, --si - dělá totéž jako volba -h, ale používá oficiální jednotky SI (kde se pro výpočty používá 1000 místo 1024, a M je tedy 1000000 místo 10485576). (Novinka ve fileutils-4.0.)

-I, --ignore=vzor - nezobrazí soubory, jejichž názvy odpovídají zadanému vzoru (vzor není regulární výraz), pokud nejsou uvedeny na příkazovém řádku. Stejně jako v shellu, počáteční `.' v názvu souboru neodpovídá znaku `*' zadanému na začátku vzoru.

-L, --dereference Vytiskne informace o souborech, na které odkazují symbolické odkazy, namísto informací o samotných symbolických odkazech.

-N, --literal Necitovat názvy souborů.

-Q, --quote-name, --quoting-style=c Uzavřete názvy souborů do dvojitých uvozovek a zobrazte negrafické znaky, jako v C .

-R, --recursive vypíše obsah všech adresářů rekurzivně.

-S, --sort=velikost - řazení podle velikosti souboru namísto abecedy. Jako první se tedy zobrazí největší soubory.

-T, --tabsize cols - přiřadit šířku tabulátoru sloupcům cols. Výchozí hodnota je 8 a lze ji také nastavit pomocí proměnné prostředí TABSIZE, pokud není nastavena proměnná prostředí POSIXLY_CORRECT. ls používá tabulátory k zarovnání výstupu, pokud je to možné. Pokud je sloupec nula, pak se nepoužívá žádná tabulka.

-U, --sort=none Neřadit; seznam souborů bude vrácen v pořadí, v jakém jsou soubory zapsány na disk (rozdíl mezi volbami -U a -f je v tom, že tato volba nezakazuje ani nepovoluje jiné volby). Tato možnost může být užitečná zejména při výpisu obsahu velmi rozsáhlých adresářů bez řazení a urychlení celého procesu).

-X, --sort=přípona řazení abecedně podle přípon souborů (znaky za posledním `.'); soubory bez přípon se zobrazí jako první.

--block-size=velikost - vrátí velikosti v blocích velikosti bajtů. (Novinka ve fileutils-4.0.)

--color[=kdy] - nastaví barvu pro rozlišení mezi typy souborů. Barvy se nastavují pomocí proměnné prostředí LS_COLORS. Informace o nastavení této proměnné najdete na stránce manuálu [1]dircolors(1). Parametr when lze vynechat nebo nabývat jedné z následujících hodnot:

  • žádné - nepoužívejte barvu vůbec. Ve výchozím nastavení nainstalováno.
  • auto - Použít barvu, pouze pokud je stdout terminál.
  • vždy - vždy použít barvu. Zadání --color bez parametru when je ekvivalentní --color=always.

--full-time - uveďte čas v plném rozsahu, nikoli ve standardní zkrácené verzi. Tento formát vypadá stejně jako výchozí příkaz datum ; nelze jej změnit, ale můžete extrahovat řetězec data pomocí příkazu cut a spustit výsledek s `date -d'. To může být velmi užitečné, protože časy v tomto formátu zahrnují sekundy. (Souborové systémy Unix zaznamenávají časové razítko souboru zaokrouhlené na nejbližší sekundu, takže tato volba zobrazuje úplné informace o časovém razítku.) Může vám například pomoci, když se snažíte zjistit, proč určitý Makefile správně negeneruje soubory.

--quoting-style=slovo - Použijte styl slova pro výběr režimu citací názvu souboru. Styl slova může nabývat následujících hodnot:

  • doslovný - zobrazí názvy souborů tak, jak jsou. Toto je výchozí chování ls .
  • shell - Uzavře názvy souborů do jednoduchých uvozovek pro shell , pokud obsahují metaznaky nebo by mohly vést k nejednoznačnému výstupu.
  • shell-always Uzavře názvy souborů do jednoduchých uvozovek pro shell , i když to není vyžadováno.
  • c - uzavírá názvy souborů do uvozovek, jako v C; toto je ekvivalentní volbě -Q.
  • escape - jako pro c, kromě toho, že jméno není uzavřeno do dvojitých uvozovek; ekvivalentní k volbě -b.

Výchozí hodnotu pro tuto volbu lze nastavit v proměnné prostředí QUOTING_STYLE (viz níže ).

  • --show-control-chars Zobrazit negrafické znaky v názvech souborů tak, jak jsou. Toto je výchozí hodnota, pokud je výstup na terminál a program se nazývá ls .

Standardní klíče GNU

--help vytisknout nápovědu na standardní výstup a uspět.

--version vytisknout informace o verzi do stdout a úspěšně ukončit.

-- - slouží k označení konce seznamu klíčů.

Prostředí

Proměnná POSIXLY_CORRECT určuje velikost bloku. Pokud není nastavena hodnota POSIXLY_CORRECT, proměnná TABSIZE určuje šířku tabulátoru . Proměnná COLUMNS (pokud obsahuje celé číslo) určuje šířku výstupu ve sloupcích (pro použití s ​​volbou ). Názvy souborů by neměly být zkráceny, aby se vešly do vícesloupcového výstupu. -C

V normálním provozu se používají hodnoty proměnných LANG , LC_ALL , LC_CTYPE a LC_MESSAGES . Proměnná TZ nastavuje časové pásmo pro časová razítka vrácená ls. Proměnná LS_COLORS slouží k nastavení barev.

Proměnná QUOTING_STYLE se používá k nastavení výchozí hodnoty pro volbu --quoting-style. Tato volba je standardně nastavena na doslovný, ale autoři varují, že toto výchozí nastavení se může někdy v budoucí verzi změnit na shell.

Chyby v implementaci

Na systémech BSDls poskytuje velikosti, které jsou poloviční než velikost souborů, které jsou připojeny NFS ze systémů HP-UX . Na systémech HP-UXls poskytuje velikosti, které jsou dvakrát větší než správná velikost pro soubory, které jsou připojeny pomocí NFS ze systémů BSD . Toto je nedostatek systémů HP-UX ; je také v programu lsod HP-UX .

Kompatibilita

POSIX 1003.3