ls (dir, vdir) — утыліта Unix, якая друкуе ў стандартны вывад змест каталогаў.

Сінтаксіс ls [опцыі] [файл…] dir [файл…] vdir [файл…]

Апісанне Каманда ls спачатку друкуе спіс усіх аў (не каталогаў), пералічаных у камандным радку, а потым друкуе спіс усіх файлаў, якія знаходзяцца ў каталогах, пералічаных у камандным радку. Калі не ўказана ніводнага файла, то па замоўчванню аргументам прызначаецца . (бягучы каталог). Опцыя -d прымушае ls не лічыць аргументы-каталогі каталогамі. Будуць адлюстроўвацца толькі файлы, якія не пачынаюцца з . ці ўсе файлы, калі зададзена опцыя -a.

Кожны спіс файлаў (для файлаў, якія не з’яўляюцца каталогамі і для кожнага каталога, які змяшчае спіс файлаў) сартуецца асобна ў алфавітнай паслядоўнасці бягучых рэгіянальных наладак (locale). Калі ўказана опцыя -l, то перад кожным спісам друкуецца выніковы радок з агульным памерам усіх файлаў у спісе, які вымяраецца ў блоках (памер блока па замоўчванню складае 1024 байты, і можа быць зменены з дапамогай опцыі --block-size).

Вынік друкуецца на стандартны вывад, па аднаму файлу на радок, калі з дапамогай опцыі -C не зададзены шматкалонкавы вывад. Аднак пры вывадзе на тэрмінал не вызначана, ці будзе вывад ажыццяўляцца ў адну калонку ці ў некалькі. Для задання аднакалонкавага ці шматкалонкавага рэжыму друку можна ўжыць опцыі -1 і -C, адпаведна.

Атрымаць спіс каталогаў у бягучым каталозе можна з дапамогай каманды: ls -F | grep / | sed 's/\///g'

Ключы POSIX -C — надрукаваць спіс файлаў у калонках з вертыкальным упарадкаваннем.

-F — для кожнага імя каталога дадаць суфікс '/', для кожнага імя FIFO — '|' і для кожнага імя выканальнага файла '*'.

-R — уключыць рэкурсіўны вывад спіса каталогаў.

-a — дадаваць у спіс файлы з імёнамі, што пачынаюцца з кропкі (паказваць схаваныя файлы).

-c — ужываць пры сартаванні (пры заданні опцыі -t ці -l) час вымярэння стану файла замест часу апошняй мадыфікацыі файла.

-d — друкаваць імёны каталогаў, нібыта яны звычайныя файлы, замест таго, каб паказваць іх змест.

-i — друкаваць перад імем файла яго серыйны нумар (нумар inode).

-l — друкаваць (у аднакалонкавым фармаце) тып файла, правы доступу да файла, колькасць спасылак на файл, імя уладальніка, імя групы, памер файла (у байтах), штамп часу і імя файла.

Тыпы файлаў могуць прымаць наступныя значэнні: - для звычайнага файла, d для каталога, b для блокавай прылады, c для сімвальнай прылады, l для сімвалічнай спасылкі, p для FIFO і s для сокета(socket).

Па замоўчванню, часовы штамп з’яўляецца часам апошняй мадыфікацыі; опцыі -c і -u дазваляюць выбіраць два іншых часовых штампа. Для файлаў прылад, поле памеру звычайна замяняецца на старэйшы і малодшы нумары прылады.

-q — замест недрукавальных сімвалаў у імені файла пры вывадзе будуць ставіцца знакі пытання. (Гэтая опцыя уключана па замоўчванню пры вывадзе на тэрмінал.)

-r — ажыццяўляць сартоўку ў адваротным парадку.

-t — сартаваць па абранаму часоваму штампу.

-u — ужываць пры сартоўцы (опцыя -t) ці пералічэнні (опцыя -l) час апошняга доступу да файла замест часу апошняй мадыфікацыі файла.

-1 — друкаваць у аднакалонкавым фармаце.

— завяршае спіс ключоў.

Падрабязнасці версіі GNU Калі стандартны вывад з’яўляецца тэрміналам, то вывад ажыццяўляецца ў шматкалонкавым фармаце (з вертыкальнай сартоўкай).

Праграма dir (таксама ўсталяваная пад імем d) з’яўляецца эквівалентам `ls -C -b'; такім чынам, файлы па замоўчванню друкуюцца ў шматкалонкавым фармаце (з вертыкальнай сартоўкай). Праграма vdir (таксама ўсталяваная пад імем v) эквівалентная `ls -l -b'; такім чынам, файлы па замоўчванню друкуюцца ў доўгім фармаце.

Ключы GNU -1, --format=single-column — друкаваць адзін файл на радок. Гэтая опцыя ўключана па змоўчванню, калі стандартны вывад не з'яўляецца тэрміналам.

-a, --all — выдаваць усе файлы ў каталогах, разам з схаванымі файламі, якія пачынаюцца з кропкі.

-b, --escape, --quoting-style=escape — Замяняць неграфічныя сімвалы ў імёнах файлаў, ужываючы літарна-лічбавыя паслядоўнасці, а таксама паслядоўнасці віду -Q, за выключэннем таго, што імёны файлаў не заключаюць у двукоссе.

-c, --time=ctime, --time=status — сартаваць змест каталога ў адпаведнасці з часам змены стану файла (поле `ctime' у inode). Калі з дапамогай опцыі -l зададзены доўгі фармат, то выдаваць час змены стану файла замест часу яго мадыфікацыі.

-d, --directory — друкаваць імёны каталогаў, нібыта яны звычайныя файлы, замест таго, каб паказваць іх змест.

-f — не сартаваць змест каталога; друкаваць файлы ў тым парадку, у якім яны запісаны на дыск. Гэтая опцыя таксама дазваляе -a і -U і забараняе -l, --color, -s, і -t, калі яны былі зададзены перад -f.

-g — ігнаруецца; патрэбна для сумяшчальнасці з Unix.

-h, --human-readable — дадаваць да кожнага памеру файла літару памеру, напрыклад, M для двайковых мегабайт (`мебібайт'). (Новае ў fileutils-4.0.)

-i, --inode — друкаваць нумар inode (таксама завецца серыйным нумарам файла і нумарам індэкса) кожнага файла, злева ад яго імя. (Гэты нумар адназначна ідэнтыфікуе кожны файл у кожнай файлавай сістэме)

-k, --kilobytes — калі выдаюцца памеры файлаў, то выдаваць іх у кілабайтах.

-l, --format=long, --format=verbose — у дадатак да імя кожнага файла друкуецца тып файла, правы доступу да файла, колькасць спасылак на файл, імя уладальніка, імя групы, памер файла ў байтах і штамп часу (час апошняй мадыфікацыі файла, калі не зададзена іншае). Для файлаў з часам больш за 6 месяцаў таму назад ці больш, чым 1 гадзіна ў будучыню, часовы штамп утрымлівае год замест часу дня.

Кожны каталог са спісам зместу папярэднічаецца радком `total blocks', дзе blocks — гэта агульная дыскавая прастора, якая ужываецца усімі файламі ў бягучым каталозе. Па замоўчванні памер блока змяшчае 1024 байты; калі ўсталявана пераменная асяроддзя POSIXLY_CORRECT , то ужываецца памер блока 512 байтаў (калі не зададзена опцыя -k). blocks лічыць кожную жорсткую спасылку асобна; задаць па-іншаму праз аргументы немагчыма. Правы доступу адлюстроўваюцца ў практычна звычайным сімвальным выглядзе, але ls камбінуе некалькі бітаў у трэці сімвал кожнага набору праў доступу:

s — setuid ці setgid біт усталяваны разам з адпаведным бітам правоў на выкананне. S — setuid ці setgid біт усталяваны, але адпаведны біт правоў на выкананне не ўсталяваны. t — sticky-біт усталяваны разам з бітам правоў на выкананне іншымі. T — sticky-біт усталяваны, але біт правоў на выкананне іншымі няма. x — біт правоў на выкананне ўсталяваны, і не выконваецца ні адна з вышэйпаказаных умоў.  — Ва ўсіх іншых выпадках.

-m, --format=commas — друкаваць спіс файлаў у радок з максімальна магчымай колькасцю імён файлаў на радок, падзяляючы імёны коскай і прабелам.

-n, --numeric-uid-gid — друкаваць лікавыя UID і GID замест імён уладальніка і групы.

-o — ужываць доўгі фармат, але не паказваць інфармацыю аб групе. Дадзеная опцыя эквівалентная—format=long—no-group і неабходная для сумяшчальнасці з іншымі версіямі ls.

-p, --file-type, --indicator-style=file-type — дадаваць сімвал, які паказвае тып файла, да кожнага імя файла. Дадзеная опцыя падобная на -F, за выключэннем таго, што выканальная файлы не пазначаюцца. (Фактычна ў fileutils-4.0 опцыя—file- type эквівалентная—classify.)

-q, --hide-control-chars — друкаваць знакі пытання замест неграфічных сімвалаў ў імя файла. Гэтая опцыя уключана па замоўчванню.

-r, --reverse — сартаваць змест каталога ў адваротным парадку.

-s, --size — друкаваць памер кожнага файла ў блоках па 1024 байты злева ад імя файла. Калі усталявана зменная асяроддзя POSIXLY_CORRECT, то ўжываецца памер блока 512, калі не зададзена опцыя -k .

-t, --sort=time — сартаваць па часу апошняй мадыфікацыі (поле `mtime' у inode) замест таго, каб ажыццяўляць сартоўку па алфавіце. Самыя свежыя файлы будуць адлюстроўвацца першымі.

-u, --time=atime, --time=access, --time=use — сартаваць па часе апошняга доступу да файла, замест часу апошняй мадыфікацыі (поле `atime' у inode). Калі зададзены доўгі фармат вываду, выдаваць час апошняга доступу замест часу апошняй мадыфікацыі.

-v — ажыццяўляць сартоўку ў адпаведнасці з нумарам версіі файлаў. Пры гэтым улічваецца, што імёны файлаў часта утрымліваюць нумары версій ці чарговыя нумары. Стандартныя функцыі сартоўкі звычайна не ажыццяўляюць сартоўку, якую мог бы чакаць чалавек, так як сартоўка ажыццяўляецца на аснове штосімвальнага параўнання. Сартаванне па версіях вырашае гэтую праблему і асабліва карысна, калі ажыццяўляецца прагляд каталогаў, якія ўтрымліваюць шмат файлаў, у якіх у назве ёсць нумар версіі. Напрыклад: > 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 Лічбавыя часткі з лідзіруючымі нулямі вызначаюцца як больш малыя: > 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 — прызначае вывад на экран у cols калонак. Па змоўчванню, калі гэта магчыма, дадзенае значэнне выведваецца праз драйвер тэрмінала; у адваротным выпадку ужываецца значэнне зменнай асяроддзя COLUMNS, калі яна ўсталявана; у адваротным выпадку, па змоўчванню, усталёўваецца 80.

-x, --format=across, --format=horizontal — друкаваць спіс файлаў у шматкалонкавым рэжыме, з сартоўкай па гарызанталі.

-A, --almost-all — выдаваць усе файлы, акрамя `.' і `..'.

-B, --ignore-backups — не паказваць файлы, якія канчаюцца на `~', калі яны не зададзены ў камандным радку.

-C, --format=vertical — друкаваць файлы ў шматкалонкавым рэжыме, з сартоўкай па вертыкалі. Опцыя усталявана па змоўчванню, калі стандартны вывад з’яўляецца тэрміналам. Дадзеная опцыя заўсёды ўсталёўваецца па змоўчванню для праграм dir і d.

-D, --dired — пры доўгім фармаце (-l), пасля асноўнага вывада, друкаваць дадатковы радок выгляду: //DIRED// BEG1 END1 BEG2 END2 …

Тут BEGn і ENDn — гэта цэлыя бяззнакавыя лікі, якія для кожнага запісу паказваюць байтавую пазіцыю пачатка і канца кожнай назвы файла. Такім чынам, Emacs можа лёгка знайсці імёны, нават калі яны ўтрымліваюць незвычайныя сімвалы, такія як прабелы ці сімвалы новага радка.

Калі каталогі адлюстроўваюцца рэкурсіўна (-R), то падобны радок выводзіцца пасля кожнага падкаталога: //SUBDIRED// BEG1 END1 …

-F, --classify, --indicator-style=classify — дадаваць да кожнай назвы файла сімвал, які б паказваў яго тып. Для звычайных выканальных файлаў гэта `*'. Для каталога дадаецца `/', для FIFO — `|', для сімвалічных спасылак `@', для сокетаў `=', для звычайных файлаў нічога не дадаецца.

-G, --no-group — не адлюстроўваць інфармацыю аб групе ў доўгім фармаце вываду.

-H, --si — робіць тое ж, што і опцыя -h, але ўжывае афіцыйныя адзінкі вымярэння СІ (дзе для разлікаў выкарыстоўваецца 1000 замест 1024 і, такім чынам, M — гэта 1000000 замест 10485576). (Новае ў fileutils-4.0.)

-I, --ignore=шаблон — не паказваць файлы, імёны якіх супадаюць з зададзеным шаблонам (шаблон — гэта не рэгулярны выраз), калі толькі яны не зададзены ў камандным радку. Як і ў shell, пачатковая `.' у назве файла не супадае з сімвалам `*', зададзеным у пачатку шаблона.

-L, --dereference — друкаваць інфармацыю аб файлах, на якія указваюць сімвалічныя спасылкі, замест інфармацыі аб саміх сімвалічных спасылках.

-N, --literal — не змяшчаць у двукоссі імёны файлаў.

-Q, --quote-name, --quoting-style=c — змяшчаць імёны файлаў у двайныя двукоссі і паказваць неграфічныя сімвалы як у мове Сі.

-R, --recursive — рэкурсіўна друкаваць спіс зместу ўсіх каталогаў.

-S, --sort=size — ажыццяўляць сартоўку па памеру файла, замест сартоўкі па алфавіту. Такім чынам, найвялікшыя файлы будуць паказаны спачатку.

-T, --tabsize cols — пазначыць шырыню табуляцыі ў cols калонак. Па змоўчванню 8, таксама можа быць зададзена з дапамогай зменнай асяроддзя TABSIZE, калі пры гэтым не ўсталявана зменная асяроддзя POSIXLY_CORRECT. ls ужывае табуляцыю для выраўноўвання вывада, калі гэта магчыма. Калі cols роўна нулю, то табуляцыя не ўжываецца.