Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

16 практических примеров использования команды ls в Linux

Оригинал: 16 Practical Examples of Linux LS command for Beginners
Автор: Himanshu Arora
Дата публикации: 18 апреля 2017 г.
Перевод: А.Панин
Дата перевода: 23 апреля 2017 г.

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

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

1. Вывод имен скрытых файлов/директорий

По умолчанию команда не отображает имена скрытых файлов и директорий. Однако, вы можете активировать механизм вывода информации об этих элементах файловой системы с помощью параметра -a. Таким образом, для вывода имен всех файлов/директорий из текущей директории (включая скрытые файлы и директории, имена которых начинаются с символа точки ".") достаточно выполнить следующую команду:

ls -a

2. Удаление информации о текущей (.) и родительской (..) директориях из вывода

При использовании параметра -a, кроме всего прочего, осуществляется вывод информации о текущей и родительской директориях (элементы "." и ".." соответственно). Если вам не нужна эта информация, вы можете использовать вместо упомянутого параметра параметр -A.

3. Вывод информации о файлах и директориях в обратном порядке

По умолчанию ls сортирует имена файлов и директорий в алфавитном порядке. Но если вам понадобится, вы можете организовать вывод имен элементов директории в обратном порядке. Для этого вам придется использовать параметр -r.

ls -r

А это пример вывода:

4. Сортировка имен файлов по расширениям

Для сортировки имен файлов в алфавитном порядке по расширениям следует использовать параметр -X.

ls -X

Это приведенная команда в действии:

При рассмотрении приведенной выше иллюстрации несложно заметить, что файл с именем "echo" и расширением ".c" расположен в выводе перед файлом с именем "byzanz_window" и расширением ".py".

5. Сортировка элементов директории по времени модификации

Если вам нужно узнать, какие файлы или директории были недавно модифицированы, вы можете использовать параметр -t команды ls.

ls -t

В случае использования параметра -t первыми выводятся имена самых новых элементов файловой системы.

6. Рекурсивный вывод элементов поддиректорий

Если вам нужно, вы можете использовать команду ls для вывода информации также и об элементах поддиректорий текущей директории. Для этой цели используется параметр -R.

ls -R

Это приведенная выше команда в действии:

7. Вывод имен файлов с информацией о соответствующих структурах inode

Команда ls также позволяет вам выводить имена файлов/директорий вместе с номерами соответствующих структур inode. Для использования этой возможности предусмотрен параметр -i.

ls -i

Команда в действии:

Очевидно, что на иллюстрации выше в столбцах слева приведены числа, являющиеся номерами структур inode, а в столбцах справа - соответствующие имена файлов/директорий.

8. Вывод подробной информации о файлах и директориях

Команда ls также может выводить подробную информацию о файлах и директориях. Для активации данного режима вывода (также известного, как "long listing format" или "широкий формат") вам придется использовать параметр -l.

Как видно на иллюстрации выше, вывод состоит из 8 столбцов. А это информация о содержимом каждого из столбцов:

  • Первый столбец содержит информации о правах доступа к элементу директории
  • Второй столбец содержит количество жестких ссылок на элемент директории
  • Третий и четвертый столбцы содержат имена пользователя и группы пользователей, владеющих элементом директории
  • Пятый столбец содержит размер элемента директории
  • Шестой и седьмой столбцы содержат дату и время модификации элемента директории
  • Последний, восьмой столбец содержит имя элемента директории

9. Вывод имени автора файла

Вы можете воспользоваться специальным параметром команды ls для вывода имени автора каждого из файлов в процессе вывода подробной информации о содержимом директории. Это параметр --author, который должен быть скомбинирован с параметром -l.

ls -l --author

Как видно на иллюстрации выше, новый, пятый столбец содержит имя автора файла.

Примечание: на официальном веб-сайте проекта GNU по этому поводу сказано следующее: "В системе GNU/Hurd имена авторов файлов могут отличаться от имен их владельцев, в других же системах они совпадают".

10. Вывод экранирующих последовательностей в стиле C для специальных символов (таких, как символ перехода на новую строки и символ пробела)

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

Однако, команда ls поддерживает параметр, который может использоваться в данном случае, а именно, параметр, который позволяет вывести экранирующую последовательность в стиле C для непечатаемых символов. Этим параметром является параметр -b.

При рассмотрении приведенной выше иллюстрации становится очевидным, что в результате использования параметра -b в имени рассматриваемого файла появляется экранирующая последовательность "\n". Аналогично, в данном режиме символы пробела заменяются на экранирующую последовательность символов "\[пробел]".

11. Вывод размеров файлов в единицах, отличных от байтов

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

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

ls -l --block-size=k [имя-файла]

Помните о том, что при использовании параметра -l выводится реальный размер файла, то есть, количество данных. содержащихся в нем. Если же вам нужно знать размер файла в файловой системе или размер зарезервированного для его хранения пространства (да, эти размеры могут отличаться), вам придется использовать параметр -s.

ls -s --block-size=k [имя-файла]

Если вас интересует дополнительная информация о различиях в размерах файлов в случае использования параметров -l и -s, вы можете ознакомиться с материалом, доступным по данной ссылке.

12. Вывод лишь имен и размеров файлов и директорий

Если вы хотите, чтобы вывод команды ls содержал только имена файлов/директорий и их размеры, вы можете использовать параметр -h в комбинации с параметром -l/-s.

Например:

ls -s -h

13. Удаление информации о файлах резервных копий из вывода

В Linux файлы резервных копий содержат в конце своих имен символ тильды (~). Команда ls поддерживает параметр -B, который позволяет не включать файлы резервных копий в вывод в том случае, если такие файлы не интересуют пользователя.

Например, на приведенной ниже иллюстрации показан вывод двух команд ls. В результате исполнения первой команды выводится имя файла резервной копии, а второй (с параметром -B) - не выводится.

14. Вывод информации о типах файлов

По умолчанию выводимые имена элементов директории раскрашиваются в разные цвета в зависимости от их типов. Однако, если вам нужно, вы можете активировать режим добавления индикаторов (используемых для тех же целей) в вывод. Для этой цели предназначен параметр -F.

Это пример вывода команды:

Обратите внимание на дополнительный символ "/" после имени директории "example", а также дополнительный символ "*" после имени исполняемого файла "test". Это полный список индикаторов с информацией об их значениях:

  • @ указывает на символьную ссылку
  • * указывает на исполняемый файл
  • = указывает на файл сокета
  • | указывает на файл именованного программного канала
  • > указывает на файл двери
  • / указывает на директорию

15. Изменение формата вывода

Если вам понадобится, вы также сможете изменить формат вывода команды ls. Параметр --format позволяет сделать это. Данный параметр требует явного указания названия формата вывода, который вам нужен. Доступны форматы вывода со следующими названиями: "verbose" или "long", "commas", "horizontal" или "across", "vertical" и "single-column".

Например, вы можете использовать параметр --format=commas, если хотите получить список из разделенных с помощью запятых имен файлов:

По аналогии параметр --format=single-column может использоваться в случае необходимости в выводе имен файлов в одном столбце:

16. Сокрытие имен файлов определенного типа

При желании, вы также можете убрать из вывода команды ls имена файлов определенного типа. Параметр --hide (который предусматривает обязательную передачу шаблона имен файлов командной оболочки) позволяет сделать это. Например, если вам нужно, чтобы в выводе отсутствовали имена файлов с расширением .txt, вы должны выполнить следующую команду:

ls --hide=*.txt

На иллюстрации ниже показан вывод команды ls без каких-либо параметров и с параметром --hide.

Заключение

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