Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В вычислениях , lsявляется команда в список компьютерных файлов в Unix и Unix-подобных операционных систем. lsопределяется POSIX и спецификацией Single UNIX . При вызове без аргументов ls выводит список файлов в текущем рабочем каталоге . Команда также доступна в оболочке EFI . [1] В других средах, таких как DOS , OS / 2 и Microsoft Windows , аналогичная функциональность обеспечивается dirкомандой. Численные вычислениясреды MATLAB и GNU Octave включают ls функцию с аналогичной функциональностью. [2] [3]

История [ править ]

lsУтилита появилась в первой версии AT & T UNIX , имя , унаследованное от аналогичной команды в Multics также называют «LS», сокращенно от слова «список». [4] [5] [6] ls является частью X / Open Portability Guide, начиная с выпуска 2 1987 года. Он был унаследован от первой версии POSIX.1 и Single Unix Specification . [7]

lsКоманда также является частью ASCII «S MSX-DOS2 Инструменты для MSX-DOS версии 2. [8]

Сегодня две популярные версии ls- это та, которая поставляется с пакетом GNU coreutils , и версия , выпущенная различными вариантами BSD . Оба являются бесплатными программами с открытым исходным кодом и имеют лишь незначительные различия в синтаксисе. lsВстроенная в GNU coreutils версия была написана Ричардом Столлманом и Дэвидом Маккензи. [9]

Поведение [ править ]

Unix и Unix-подобные операционные системы поддерживают идею текущего рабочего каталога , то есть того места, где он в настоящее время находится в иерархии каталогов . При вызове без аргументов lsвыводит список файлов в текущем рабочем каталоге. Если указан другой каталог, тогда lsбудут перечислены файлы в нем, и фактически пользователь может указать любой список файлов и каталогов, которые будут перечислены.

Файлы, имена которых начинаются с "." которые не перечислены , если -aне указан флаг, -Aфлаг указан, или файлы указаны в явном виде.

Без параметров lsотображает файлы в чистом формате. Однако этот простой формат затрудняет определение типа, разрешений и размера файлов. Наиболее распространенные варианты раскрытия этой информации или изменения списка файлов:

  • -lдлинный формат, отображающий типы файлов Unix , разрешения, количество жестких ссылок , владельца, группу, размер, дату последнего изменения и имя файла
  • -fне сортировать. Полезно для каталогов, содержащих большое количество файлов.
  • -Fдобавляет символ, раскрывающий природу файла, например, *для исполняемого файла или /для каталога. У обычных файлов нет суффикса.
  • -aперечисляет все файлы в данном каталоге, включая те, чьи имена начинаются с "." (которые в Unix являются скрытыми файлами ). По умолчанию эти файлы исключены из списка.
  • -Rрекурсивно перечисляет подкаталоги. Таким образом, команда ls -R /выведет список всех файлов.
  • -d показывает информацию о символической ссылке или каталоге, а не о цели ссылки или перечислении содержимого каталога.
  • -t отсортировать список файлов по времени модификации.
  • -hразмеры печати в удобочитаемом формате. (например, 1K, 234M, 2G и т. д.) Эта опция не является частью стандарта POSIX, хотя и реализована в нескольких системах, например, GNU coreutils в 1997 г., [10] FreeBSD 4.5 в 2002 г. [11] и Solaris 9 в 2002. [12]
  • -1 (числовая цифра один) принудительно выводит по одной записи на строку.

Обычно можно выделять разные типы файлов разными цветами, а не символами, как -Fбыло бы, но это область, в которой две основные lsверсии различаются:

  • GNU ls использует --colorопцию; проверяет тип файла Unix, права доступа к файлу и расширение файла; и использует собственную базу данных для управления цветами. [13]
  • FreeBSD ls использует эту -Gопцию; проверяет только тип файла Unix и права доступа к файлу. и использует базу данных termcap [14]

Когда выбрана опция использования цвета для обозначения типов файлов, результат может выглядеть так:

  -rw-r - r-- 1 персонал unixguy 26650 20 декабря 11:16 audio.ogg  brw-r - r-- 1 персонал unixguy 64, 64 27 января 05:52 bd-block-device  crw-r-- r-- 1 персонал unixguy 64, 255 26 января 13:57 cd-character-device  -rw-r - r-- 1 персонал unixguy 290 26 января 14:08 image.png  drwxrwxr-x 2 персонал unixguy 48 26 января 11 : 28 di-directory  -rwxrwxr-x 1 персонал unixguy 29 26 января 14:03 бывший исполняемый файл  -rw-r - r-- 1 персонал unixguy 0 20 декабря 09:39 fi-обычный файл  lrwxrwxrwx 1 персонал unixguy 3 26 января 11:44 ln-soft-link -> dir  lrwxrwxrwx 1 персонал unixguy 15 декабря 20 10:57 or-orphan-link -> mi-missing-link  drwxr-xrwx 2 персонал unixguy 4096 20 декабря 10 : 58 ow-other-  writeable -dir prw-r - r-- 1 персонал unixguy 0 26 января 11:50 pi-pipe  -rwxr-sr-x 1 персонал unixguy 0 20 декабря 11:05 sg-setgid  srw-rw -rw- 1 персонал unixguy 0 26 января 12:00 so-socket 
drwxr-xr-t 2 посох unixguy 4096 20 декабря 10:58 st-sticky-dir 
-rwsr-xr-x 1 персонал unixguy 0 20 декабря 11:09su-setuid 
-rw-r - r-- 1 персонал unixguy 10240 20 декабря 11:12 compressed.gz 
drwxrwxrwt 2 персонал unixguy 4096 20 декабря 11:10 tw-sticky-other-writeable-dir 

Пример использования [ править ]

В следующем примере демонстрируется вывод команды с lsдвумя разными аргументами ( pwdэто команда, которая показывает текущий рабочий каталог или, другими словами, папку, в которой вы в данный момент находитесь):

$ pwd / home / fred $ ls -l drwxr - r-- 1 fred editors 4096 draft -rw-r - r-- 1 fred editors 30405 edition-32 -r-xr-xr-x 1 fred fred 8460 edit $ ls -F drafts / edition-32 edit *

В этом примере у пользователя fredесть каталог с именем drafts, обычный файл с именем edition-32и исполняемый файл с именем editв его домашнем каталоге. lsиспользует обозначение разрешений файла Unix, чтобы указать, каким пользователям или группам разрешен доступ к каждому файлу или каталогу.

drwxr - r-- 1 fred editors 4096 1 марта 2007 г. черновики

В этом примере Черновики это каталог (обозначается дескриптором файла d), а символы после этого указывают разрешения:

  • rwx: владелец (Фред) имеет право читать (р), записывать (ш) и выполните (Икс)
  • р--: участники группы (пользователи, входящие в редакторыgroup) имеют права только на чтение; запись и выполнение не разрешены, что обозначается символами дефиса (-)
  • р--: другие (пользователи, кроме владельца или участников редакторы) иметь разрешение только на чтение; запись и выполнение не разрешены

См. Также [ править ]

  • Chown
  • chgrp
  • du (Unix)
  • mdls
  • Идентификатор пользователя (Unix)
  • Идентификатор группы (Unix)
  • Список команд Unix
  • Структура каталогов Unix

Ссылки [ править ]

  1. ^ «Оболочки EFI и сценарии» . Intel . Проверено 25 сентября 2013 .
  2. ^ https://www.mathworks.com/help/matlab/ref/ls.html
  3. ^ https://octave.sourceforge.io/octave/function/ls.html
  4. ^ Страница руководства Multics для команды ls или list
  5. ^ «Краткая история команды 'ls'» , Эрик Фишер, Проект документации Linux
  6. ^ "Руководство программиста Multics - Команды и активные функции" (PDF) . п. 397.
  7. ^ ls  - Справочник по командам и утилитам, спецификация Single UNIX , выпуск 7 от The Open Group
  8. ^ Руководство пользователя MSX-DOS2 Tools от ASCII Corporation
  9. ^ ls(1)  -  Руководство по основным командам Linux ;  -  Руководство по основным командам FreeBSDls(1)
  10. ^ "(decode_switches): -h и -H отменяют единицы вывода" . coreutils.git. 1997-12-31.
  11. ^ "[база] Журнал /stable/10/bin/ls/ls.c" . 2001-12-28.
  12. ^ Что нового в операционной среде Solaris 9 , Sun Microsystems, 2002
  13. ^ «NCURSES - Часто задаваемые вопросы (FAQ): Мой терминал не распознает цвет» . Проверено 23 июня 2013 года .
  14. ^ "FreeBSD Man Pages - ls" . Проверено 23 июня 2013 года .

Внешние ссылки [ править ]

  • ls - Справочник по командам и утилитам, спецификация Single UNIX , выпуск 7 от The Open Group
  • ls(1) -  Руководство по основным командам FreeBSD
  • ls(1) -  Руководство по основным командам NetBSD
  • ls(1) -  Руководство по основным командам OpenBSD
  • ls(1) -  Справочное руководство по командам пользователя Solaris 10
  • ls(1) -  Руководство по командам пользователя Linux
  • ls(1) -  Руководство программиста Plan 9 , том 1
  • ls(1) -  Руководство по общим командам Inferno
  • lsИсходный код GNU (как часть coreutils)
  • ls на вики LinuxQuestions.org