Команда ls – просмотр каталога
Команда ls используется в командной оболочке Linux для вывода содержимого каталогов и информации о файлах. Кроме утилиты ls , есть схожие с ней dir и vdir , отличающиеся поведением по-умолчанию.
В качестве аргументов ls принимает адреса каталогов или файлов. Если их не передавать, то будет выведено содержимое текущей папки.
Указав адрес или адреса других каталогов, можно посмотреть их содержимое.
Обратите внимание, здесь смены текущего каталога не происходит, как при использовании cd . Bash лишь выводит нам файлы и папки запрашиваемого каталога. Если нужно сразу просмотреть несколько каталогов, их указывают простым перечислением.
У программы ls есть много ключей, позволяющих получать о файлах более подробную информацию, а также выводить ее в различных форматах. Узнать о всех ключах можно с помощью ls —help . Самым используемым является -l , благодаря которому выводится подробная информация об объектах.
В первой строке указано общее количество блоков дискового пространства, которое занимают файлы просматриваемого каталога. В данном случае один блок соответствует 1024-м байтам, или 1-му килобайту.
В описании каждого файла первый символ указывает на тип файлового объекта, далее идут права (rwxrwxrwx). О типах файлов в Unix-подобных ОС мы уже говорили, о правах будет сказано позже. В примере выше имеется две директории (d), один именованный канал (p) и два обычных файла (-).
Во втором столбце для файлов указывается количество жестких ссылок на них. О том, что такое жесткая ссылка, будет рассказано позже. Далее идут имена владельца и группы (в данном случае они совпадают), размер файла, дата последнего изменения, имя. По-умолчанию размер выражается в байтах, но с помощью ключа -h можно вывести в более удобном для восприятия человеком (human) формате, то есть в килобайтах.
Ключ -a позволяет увидеть скрытые файлы:
Здесь также используется ключ -1 , чтобы вывод был в столбик. Кроме скрытого файла .iamhidden мы видим имена текущего каталога ( . ) и родительского ( .. ). Если они не нужны, вместо -a используют -A .
С помощью ключа -R можно посмотреть содержимое как самого каталога, так и вложенных в него.
В отличие от cd , команде ls можно передавать не только имена каталогов, но и файлов. Например, когда нужно получить информацию о конкретном файле или группе файлов.
На скрине во второй команде используется шаблон. О шаблонах будет сказано позже.
По-умолчанию ls сортирует файлы по алфавиту. С помощью справочной системы Linux узнайте, как сортировать файлы по размеру и времени изменения.
Курс с ответами к заданиям и дополнительными уроками в PDF
X Скрыть Наверх
Введение в Linux и Bash. Курс
У программы ls есть флаг который сортирует вывод по размеру файлов
НАЗВАНИЕ
ls — выдача информации о файлах или каталогах
ls [-R] [-a] [-d] [-C] [-x] [-m] [-l] [-n] [-o] [-g] [-r] [-t] [-u] [-c [-p] [-F] [-b] [-q] [-i] [-s] [-f] [имя . ]
ОПИСАНИЕ
Команда ls для каждого имени каталога распечатывает список входящих в этот каталог файлов; для файлов — повторяется имя файла и выводится дополнительная информация в соответствии с указанными флагами. По умолчанию имена файлов выводятся в алфавитном порядке. Если имена не заданы, выдается содержимое текущего каталога. Если заданы несколько аргументов, то они сортируются по алфавиту, однако сначала всегда идут файлы, а потом каталоги с их содержимым.
Существует три основных формата выдачи. По умолчанию выдается по одному файлу в строке; флаги -C и -x позволяют выдавать информацию в несколько колонок, а флаг -m задает свободный формат. Для определения формата вывода при указании флагов -C, -x и -m используется переменная окружения COLUMNS, значение которой равно количеству символов в выходной строке. Если эта переменная не установлена, используется база данных terminfo(4) и значение переменной окружения TERM. Если эта информация недоступна, длина выходной строки берется равной 80.
Остальные 9 символов делятся на три группы по три символа: права доступа владельца, других пользователей из его группы, всех прочих пользователей. Внутри каждой группы используются три символа, обозначающие права на чтение, запись и выполнение файла соответственно. Для каталога под правом на выполнение подразумевается право на просмотр в поисках требуемого файла.
При использовании команды
ls -l /util/by
результат выглядит примерно так:
-rwxr-xr-x 1 root sys 50 Jun 22 10:42 /util/by
Читая справа налево можно увидеть, что содержимое файла /util/by последний раз изменялось в 10 часов 42 минуты 22 января. Размер файла 50 байт. Владелец этого файла принадлежит группе sys, к тому же он является суперпользователем (входное имя — root). Следующее число, в данном случае 1, обозначает количество ссылок на файл /util/by. Наконец, последовательность минусов и букв указывает, что владелец, члены группы и прочие пользователи могут читать и выполнять файл, а владелец (и только он) имеет право писать в файл.
-
Если файл имеет режим
-rwxr--r-
-rwsr-xr-x
-rw-rwl--
ls -a
ls -aisn
/etc/passwd Идентификаторы пользователей (для ls -l и ls -o). /etc/group Идентификаторы групп для (ls -l и ls -o). /usr/lib/terminfo/?/* Сведения о терминале.
Вывод списка файлов с сортировкой
Поделюсь удобными параметрами команды ls для сортировки списка файлов. Команда ls предназначена для вывода списка файлов и директорий, но по умолчанию она сортирует список по имени.
Для того, чтобы отсортировать список файлов используются следующие опции:
Опция | Эквивалентная опция |
Описание |
---|---|---|
-U | —sort=none | без сортировки |
-X | —sort=extension | сортировка по расширению файла |
-S | —sort=size | сортировка по размеру |
-t | —sort=time | сортировка по времени изменения |
-v | выполнять сортировку по версиям файлов | |
-r | выполнять сортировку в обратном порядке |
Например, мы хотим отсортировать список по размеру файлов, тогда выполняем команду:
ls -alS
Это эквивалентно следующей команде:
ls -al --sort=size
Аналогично, например, если мы хотим получить список, отсортированный по расширению файлов:
ls -alX
Вывод директорий над файлами
Обычно команда ls выводит директории вперемешку с файлами. Некоторые реализации команды ls поддерживают полезную опцию: —group-directories-first. Если данная опция указана, то все директории будут выводится над списком файлов, что очень удобно.
Дополнительную информацию по команде ls вы можете получить, выполнив в терминале: man ls.
Вопрос №23606 от пользователя Канат Коймаганбетов в уроке «Интерфейс командной строки», курс «Основы командной строки»
ПОМОГИТЕ КТО НИБУДЬ У программы ls есть флаг, который сортирует вывод по размеру файлов. Найдите название этого флага в документации и выполните команду, которая делает подробный (-l) вывод файлов в директории /var, отсортированный по размеру. Добавьте к команде ls опцию —time-style со значением ‘long-iso’. Это позволит выводить время в полном унифицированном формате: «год-месяц-день часы:минуты». Например, 2018-08-21 21:12.
Запишите эту команду в файл solution. Нужно записать именно команду, а не её вывод! Тесты сами выполнят эту команду и проверят, что она работает верно.
Нужно написать одну единственную команду, которая:
- Отображает содержимое каталога /var (независмо от того места в файловой системе, где запускаем эту команду; то есть предварительно делать переход отдельной командой cd не надо)
- Сортирует содержимое по размеру файлов
- Делает подробный вывод (флаг -l )
- Содержит опцию —time-style
Всё это надо выполнить одной командой. Вы же приводите примеры разных команд, делающих только частичные действия из того списка, что я выше привёл.
Александр О., что то не понимаю как это сделать можете как то по подробнее, по точнее
—sort=WORD — стоит обратить внимание на этот флаг в мануале