Linux команда man ls

Обновлено: 05.07.2024

Команда ls выводит список файлов и каталогов в файловой системе и показывает подробную информацию о них. Это часть пакета основных утилит GNU, который установлен во всех дистрибутивах Linux.

Эта статья покажет вам, как использовать команду ls, на практических примерах и подробных объяснениях наиболее распространенных параметров ls.

Как использовать команду ls

Синтаксис команды ls следующий:

При использовании без параметров и аргументов ls отображает список имен всех файлов в текущем рабочем каталоге :

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

Чтобы вывести список файлов в определенном каталоге, передайте путь к каталогу в качестве аргумента команде ls . Например, чтобы отобразить содержимое каталога /etc , введите:

Вы также можете передать несколько каталогов и файлов, разделенных пробелом:

У команды ls есть несколько опций. В следующих разделах мы рассмотрим наиболее часто используемые варианты.

Формат длинных списков

По умолчанию вывод команды ls показывает только имена файлов и каталогов, что не очень информативно.

Параметр -l (нижний регистр L) указывает ls печатать файлы в формате длинного списка.

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

  • Тип файла.
  • Права доступа к файлу.
  • Количество жестких ссылок на файл.
  • Владелец файла.
  • Файловая группа.
  • Размер файла.
  • Дата и время.
  • Имя файла.

Давайте объясним самые важные столбцы вывода.

Первый символ показывает тип файла. В этом примере первый символ - , что указывает на обычный файл. Значения для других типов файлов следующие:

Следующие два поля root root показывают владельца файла и группу, за которыми следует размер файла ( 337 ), показанный в байтах. Используйте параметр -h если вы хотите печатать размеры в удобочитаемом формате. Вы можете изменить владельца файла с помощью команды chown .

Показать скрытые файлы

Чтобы отобразить все файлы, включая скрытые, используйте параметр -a :

Сортировка вывода

Как мы уже упоминали, по умолчанию команда ls перечисляет файлы в алфавитном порядке.

Параметр --sort позволяет сортировать вывод по расширению, размеру, времени и версии:

Если вы хотите получить результаты в обратном порядке сортировки, используйте параметр -r .

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

Стоит отметить, что команда ls не показывает общее пространство, занятое содержимым каталога. Чтобы узнать размер каталога , используйте команду du .

Рекурсивный список подкаталогов

Параметр -R указывает команде ls рекурсивно отображать содержимое подкаталогов:

Выводы

Команда ls отображает информацию о файлах и каталогах.

Для получения дополнительной информации о ls посетите страницу GNU Coreutils или введите man ls в свой терминал.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Опции POSIX: [-CFRacdilqrtu1] [--]

ОПИСАНИЕ

Программа ls сначала выводит список всех файлов (не каталогов), перечисленных в командной строке, а затем выводит список всех файлов, находящихся в каталогах, перечисленных в командной строке. Если не указано ни одного файла, то по умолчанию аргументом назначается `.' (текущий каталог). Опция -d заставляет ls не считать аргументы-каталоги каталогами. Будут отображаться только файлы, которые не начинаются с `.' или все файлы, если задана опция -a.

Каждый список файлов (для файлов, которые не являются каталогами и для каждого каталога, содержащего список файлов) сортируется отдельно в алфавитной последовательности текущих региональных настроек (locale). Когда указана опция -l, то перед каждым списком выводится итоговая строка с общим размером всех файлов в списке, который измеряется в полу-килобайтах (512 байт).

Результаты печатаются на стандартный вывод, по одному файлу на строку, если с помощью опции -C не задан многоколоночный вывод. Однако при выводе на терминал не определено, будет ли вывод осуществляться в одну колонку или в несколько. Для задания одноколоночного или многоколоночного режима вывода могут использоваться опции -1 и -C, соответственно.

ОПЦИИ 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 Заменять неграфические символы в именах файлов, используя алфавитно-цифровые последовательности, а также последовательности вида \ 000' с восьмеричными цифрами, как в языке C. Данная опция аналогична -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 Производить сортировку в соответствии с номером версии файлов. При этом учитывается, что имена файлов часто содержат номера версий или порядковые номера. Стандартные функции сортировки обычно не обеспечивают сортировку, которую мог бы ожидать человек, так как сортировка производится на основе посимвольного сравнения. Сортировка по версиям решает эту проблему и особенно полезна, когда производится просмотр каталогов, содержащих много файлов, у которых в имени есть номер версии. Например:

Заметим, что цифровые части с лидирующими нулями определяются как более маленькие:

(Новое в fileutils-4.0.) -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 , но использует официальные единицы измерения SI (где для расчетов используется 1000 вместо 1024 и, таким образом, M -- это 1000000 вместо 10485576). (Новое в fileutils-4.0.) -I, --ignore= шаблон Не показывать файлы, имена которых совпадают с заданным шаблоном (шаблон - это не регулярное выражение), если только они не заданы в командной строке. Как и в shell, начальная `.' в имени файла не совпадает с символом `*', заданным в начале шаблона . Чтобы спрятать ваши каталоги, вы можете просто добавить LS_OPTIONS="$LS_OPTIONS -I mystuff" в /etc/profile. -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 равно нулю, то табуляция не используется. -U, --sort=none Не производить сортировку; список файлов будет выдаваться в том порядке, в каком файлы записаны на диск. (отличие между опциями -U и -f состоит в том, что данная опция не запрещает и не разрешает другие опции). Эта опция может быть особенно полезна, когда выдаются списки содержимого очень больших каталогов, при этом сортировка не выполняется и весь процесс происходит быстрее). -X, --sort=extension Производить сортировку в алфавитном порядке по расширениям файлов (символы после последней `.'); файлы без расширений будут показаны первыми. --block-size= size Выдает размеры в блоках по size байт. (Новое в fileutils-4.0.) --color[= when ] Задает цвет для различения типов файлов. Цвета задаются с использованием переменной окружения LS_COLORS . Информацию о том, как нужно задавать значение этой переменной, можно найти в странице руководства dircolors (1). Параметр when может быть опущен или принимать одно из следующих значений: none Вообще не использовать цвет. Установлено по умолчанию. auto Использовать цвет, только если стандартный вывод является терминалом. always Всегда использовать цвет. Задание --color без параметра when эквивалентно --color=always . --full-time Выдавать время в полном, а не в стандартном сокращенном варианте. Данный формат выглядит так же, как и в команде date (1) по умолчанию; его невозможно изменить, но вы можете извлечь строку с датой через команду cut (1) и пропустить результат через `date -d'.

Это может быть очень полезно, потому что время в таком формате включает секунды. (Файловые системы Unix записывают временной штамп файла с округлением до секунды, так что данная опция показывает полную информацию о временном штампе). Например, это может помочь, если вы разбираетесь, почему некий Makefile неправильно перегенерирует файлы. --quoting-style= word Используйте стиль word для выбора режима квотинга имен файлов. Стиль word может принимать следующие значения: literal Вывод имен файлов как есть. Это поведение ls по умолчанию. shell Заключает имена файлов в одиночные кавычки для shell, если они содержат метасимволы или могут привести к неоднозначной выдаче. shell-always Заключает имена файлов в одиночные кавычки для shell, даже если этого не требуется. c Заключает имена файлов в двойные кавычки, как в языке C; это равносильно опции -Q . escape Как и для c , за исключением того, что имя не заключается в двойные кавычки; эквивалентно опции -b.

Значение по умолчанию для данной опции может быть задано в переменной окружения QUOTING_STYLE. (См. ниже главу ОКРУЖЕНИЕ ). --show-control-chars Выдавать неграфические символы в именах файлов как есть. Так задано по умолчанию, если вывод осуществляется на терминал, а программа называется ls .

СТАНДАРТНЫЕ ОПЦИИ GNU

--help Выдать подсказку на стандартный вывод и успешно завершиться. --version Выдать информацию о версии на стандартный вывод и успешно завершиться. -- Служит для обозначения конца списка опций.

ОКРУЖЕНИЕ

Переменная POSIXLY_CORRECT определяет размер блока. Переменная TABSIZE задает ширину табуляции, если не установлена переменная POSIXLY_CORRECT. Переменная COLUMNS (когда она содержит целое число) определяет ширину вывода в колонках (для использования с опцией -C). Имена файлов не должны обрезаться, чтобы уместить их в многоколоночном выводе.

При работе обычным образом используются значения переменных LANG, LC_ALL, LC_CTYPE и LC_MESSAGES. Переменная TZ задает временную зону для временных меток, которые выдает ls . Переменная LS_COLORS используется для задания цветов. Переменная LS_OPTIONS хранит опции по умолчанию.

Переменная QUOTING_STYLE используется для задания значения по умолчанию для опции --quoting-style . Данная опция по умолчанию установлена в literal , но авторы предупреждают, что это умолчание может когда-нибудь в следующей версии измениться на shell .

Продолжение перевода первой части руководства. Начало тут.

В данном отрывке рассмотрены команды работы с файловой системой и файлами, такие как ls, mkdir, touch, mv, cp, затронуто использование echo и cat. Рассказано про иноды файловой системы.

Использование команд Linux

Знакомство с ls

А сейчас, мы быстренько пройдемся по команде ls. Скорее всего вы уже хорошо знакомы с этой командой, и знаете, что набрав ls получите список содержимого текущей рабочей директории:

Указав опцию -a, вы можете увидеть полный список, включая скрытые файлы и директории, начинающиеся с ".". Как видно в следующем примере, ls -a выводит также особые связывающие директории "." и "..":

Развернутые списки директорий

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

В следующем примере мы использовали опцию -l чтобы отобразить содержимое моей директории /usr:

Первая колонка показывает информацию о правах доступа для каждого элемента. Чуть позже я объясню, как её интерпретировать. Следующая колонка содержит числа ссылок на каждый элемент файловой системы, позже мы вернемся к этому. Третья и четвертая колонки — это список владельцев и групп, соответственно. Пятая колонка — размер объекта. Шестая — время последнего изменения (mtime) объекта. И наконец, последняя колонка с именами объектов. Если файлы являются символическими ссылками, то вы увидите стрелку -> и путь, куда указывает эта символическая ссылка.

Смотрим на директории

Иногда вы захотите взглянуть на директорию, а не внутрь нее. В этом случае вы можете указать опцию -d, которая скажет ls рассматривать любую директорию, как внутреннюю:

Рекурсивный и инодный списки

Так вы можете использовать -d чтобы смотреть на директорию, но также можно использовать -R для противоположного: не только лишь глянуть внутрь директории, но и рекурсивно посмотреть все директории с файлами внутри нее! Мы не включим в руководство никакого примера вывода для этой опции (поскольку обычно он очень объемный), но возможно вы захотите попробовать несколько команд ls -R и ls -Rl, чтобы почувствовать как это работает.

Наконец, опция -i может использоваться для отображения номеров инодов для объектов в списке файловой системы:

Понятие инода

Каждому объекту файловой системы назначен уникальный индекс, называемый номером инода. Это может показаться банальным, но понятие инодов очень важно для понимания большинства операций в файловой системе. Рассмотрим например ссылки "." и "..", которые появляются в каждой директории. Чтобы полностью понять, чем на самом деле является директория "..", мы сперва взглянем на номер инода у /usr/local:

$ ls -id /usr/local
5120 /usr/local

У директории /usr/local номер инода равен 5120. А теперь посмотрим номер инода у /usr/local/bin/..:

$ ls -id /usr/local/bin/..
5120 /usr/local/bin/..

На самом деле, мы даже можем увидеть общее количество ссылок ведущих на этот, 5120 инод, используя команду ls -dl:

Если взглянуть на вторую колонку слева, то видно, что на директорию /usr/local (инод 5120) ссылаются восемь раз. На моей системе на этот инод ведут следующие пути:

/usr/local
/usr/local/.
/usr/local/bin/..
/usr/local/games/..
/usr/local/lib/..
/usr/local/sbin/..
/usr/local/share/..
/usr/local/src/..

mkdir

Давайте быстренько пройдемся по команде mkdir, которая используется для создания новых директорий. Следующий пример создает три новых директории, tic, tac, и toe, все внутри /tmp:

$ cd /tmp
$ mkdir tic tac toe

По умолчанию, команда mkdir не создает для вас родительские директории; весь путь вплоть до последнего (создаваемого) элемента должен существовать. Так, если вы захотите создать вложенные директории won/der/ful, вам придется выполнить три отдельные команды mkdir:

$ mkdir won/der/ful
mkdir: cannot create directory `won/der/ful': No such file or directory
$ mkdir won
$ mkdir won/der
$ mkdir won/der/ful

Однако, у mkdir есть очень удобная опция -p, которая говорит mkdir создавать любые отсутствующие родительские директории, как можете увидеть тут:

$ mkdir -p easy/as/pie

В целом очень просто. Чтобы узнать больше о команде mkdir наберите man mkdir и прочитайте инструкцию. Это же касается почти всех команд, рассмотренных здесь (например man ls), исключая cd, которая встроена в bash.

touch

Сейчас мы собираемся окинуть взглядом команды cp и mv, используемые для копирования, переименования и перемещения файлов и директорий. Но начнем обзор воспользовавшись командой touch, чтобы создать файл в /tmp:

$ cd /tmp
$ touch copyme

Команда touch обновляет «mtime» (время последней модификации — прим. пер.) файла, если тот существует (вспомните шестую колонку в выводе ls -l). Если файл не существует, то новый, пустой файл будет создан. Сейчас у вас должен быть файл /tmp/copyme с нулевым размером.

Теперь, когда файл существует, давайте добавим немного данных в него. Можно сделать это с помощью команды echo, которая принимает аргументы и печатает их на стандартный вывод. Сперва, команда echo сама по себе:

$ echo "firstfile"
firstfile

А сейчас, та же команда echo, но с перенаправлением вывода:

$ echo "firstfile" > copyme

Знак «больше» сообщает оболочке записывать вывод echo в файл по имени copyme. Этот файл будет создан, если не существовал, или перезаписан, если существует. Набрав ls -l, увидим, что файл copyme имеет размер в 10 байт, так как содержит слово firstfile и символ новой строки:

cat и cp

Чтобы вывести содержимое файла на терминал, используйте команду cat:

$ cat copyme
firstfile

Сейчас, мы можем воспользоваться основным вызовом команды cp для создания файла copiedme из оригинального copyme:

$ cp copyme copiedme

Ниже проверим, что это действительно разные файлы; у них отличаются номера инодов:

А сейчас давайте воспользуемся командой mv для переименования copiedme в movedme. Номер иноды останется прежний; однако, имя файла, указывающее на инод, изменится.

Номер инода у перемещаемого файла остается прежним до тех пор, пока файл назначения находится в той же файловой системе, что и исходный файл. Мы подробнее рассмотрим файловую систему в третьей части нашего руководства.

Пока мы рассказываем об mv, давайте посмотрим, как еще можно использовать эту команду. mv, помимо возможности переименовать файлы, позволяет перемещать один или более файлов в другое место в иерархии директорий. Например, чтобы переместить /var/tmp/myfile.txt в директорию /home/drobbins (которая является моей домашней), я наберу (а мог бы воспользоваться

$ mv /var/tmp/myfile.txt /home/drobbins

После этого myfile.txt будет перемещен в /home/drobbins/myfile.txt. И если /home/drobbins располагается в другой файловой системе, нежели /var/tmp, команда mv скопирует myfile.txt в новую файловую систему и удалит его из старой. Как вы уже могли догадаться, когда myfile.txt перемещается между файловыми системами, то myfile.txt на новом месте получает новый номер инода. Это все потому, что у каждой файловой системы свой независимый набор номеров инодов.

Мы также можем воспользоваться mv для перемещения нескольких файлов в одну директорию. К примеру, чтобы переместить myfile1.txt и myarticle3.txt в /home/drobbins, потребуется набрать:

$ mv /var/tmp/myfile1.txt /var/tmp/myarticle3.txt /home/drobbins

Об авторах

Daniel Robbins

Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

Команда ls является одной из основных команд, которую должен знать любой пользователь Linux. Он используется для отображения информации о файлах и каталогах в файловой системе. ls Утилита является частью основных утилит пакета GNU , который установлен на все дистрибутивы Linux.

Как использовать ls команду

Синтаксис ls команды следующий:

При использовании без параметров и аргументов ls отображает список имен всех файлов в текущем рабочем каталоге :


Файлы перечислены в алфавитном порядке:


Чтобы вывести список файлов в определенном каталоге, передайте путь к каталогу в качестве аргумента команды ls. Например, чтобы просмотреть содержимое /etc каталога, вы должны набрать:


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


У ls команды есть несколько опций. В следующих разделах мы рассмотрим наиболее часто используемые параметры.

Подробный формат списка

Вывод команды по умолчанию ls показывает только имена файлов и каталогов, что не очень информативно.

Параметр -l (нижний регистр L) ls позволяет печатать файлы в формате длинного списка.

Если используется формат длинного списка, ls команда отобразит следующую информацию о файле:

  • Тип файла
  • Файл разрешений
  • Количество жестких ссылок на файл
  • Владелец файла
  • Файловая группа
  • Размер файла
  • Дата и время
  • Имя файла


Рассмотрим следующий пример:


Давайте объясним наиболее важные столбцы вывода.

Первый символ показывает тип файла. В нашем примере первый символ - указывает на обычный файл. Значения для других типов файлов следующие:

  • - - обычный файл
  • b - заблокировать специальный файл
  • c - Специальный символьный файл
  • d - Справочник
  • l - символическая ссылка
  • n - Сетевой файл
  • p - FIFO
  • s - Разъем


Следующие девять символов показывают права доступа к файлу. Первые три символа предназначены для пользователя, следующие три - для группы, а последние три - для других. Вы можете изменить права доступа к файлу с помощью chmod команды. Символ разрешения может принимать следующее значение:

  • r - Разрешение на чтение файла
  • w - разрешение на запись в файл
  • x - Разрешение на выполнение файла
  • s - установить бит
  • t - липкий бит


В нашем примере rw-r--r-- означает, что пользователь может читать и записывать файл, а группа и другие пользователи могут только читать файл. Число 1 после символов разрешения - это количество жестких ссылок на этот файл.

Следующие два поля root root показывают владельца файла и группу, за которыми следует размер файла ( 337 ) в байтах. Используйте эту -h опцию, если вы хотите напечатать размеры в удобочитаемом формате. Вы можете изменить владельца файла с помощью chown команды.

Oct 4 11:31 - дата и время последнего изменения файла.

Последний столбец - это имя файла.

Показать скрытые файлы

По умолчанию ls команда не показывает скрытые файлы. В Linux скрытым файлом является любой файл, начинающийся с точки ( . ).

Чтобы отобразить все файлы, включая скрытые, используйте -a параметр:


Сортировка вывода

Как уже упоминалось, по умолчанию ls команда выводит файлы в алфавитном порядке.

--sort Опция позволяет сортировать вывод по расширению, размеру, времени и версии:

  • --sort=extension (или -X ) - сортировка по алфавиту по расширению.
  • --sort=size (или -S ) - сортировка по размеру файла.
  • --sort=time (или -t ) - сортировка по времени модификации.
  • --sort=version (или -v ) - Естественный вид номеров версий.


Если вы хотите получить результаты в обратном порядке сортировки, используйте -r опцию.

Например, чтобы отсортировать файлы в /var каталоге по времени изменения в обратном порядке сортировки, вы использовали бы:


Стоит отметить, что ls команда не показывает общее пространство, занимаемое содержимым каталога. Чтобы получить размер каталога, используйте du команду.


Рекурсивный список каталогов

-R Опция указывает ls команду , чтобы отобразить содержимое подкаталогов рекурсивно:


Вывод

Команда ls выводит информацию о файлах и каталогах.

Для получения дополнительной информации ls посетите страницу GNU Coreutils или введите man ls свой терминал.

Читайте также: