# Пользование командой ls

Чтобы ориентироваться в файловой системе Linux или UNIX, существует команда `ls`. Чтобы узнать, как эффективно ее использовать, необходимо ознакомиться с основами навигации в ОС Linux и дополнительными опциями.

###   


### Навигация в Linux

Файловая система дистрибутивов Linux по структуре расположения директорий (каталогов) и файлов напоминает дерево. В основе нее есть корневой каталог, который обозначается через слэш (/) и содержит всю информацию, что есть в ОС. От корневого каталога разрастаются «ветви», то есть другие каталоги.

Путь к папке можно указать в виде полного или относительного пути.

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

```
/home/timeweb/file1/
```

Относительный путь указывает местоположение объектов относительно текущего положения (текущей директории). В начале адресной строки могут быть символы:

`~` — домашняя директория;

`.` — указывает на директорию, в которой вы находитесь в данный момент;

`..` — обозначает родительскую директорию.

### Описание команды ls

Назначение утилиты `ls` – отображать информацию о директориях (каталогах) и файлах, находящихся в папках. Название команды происходит от английского слова «list» — «список». При задании дополнительных функций вы можете настроить формат вывода нужным образом.

Синтаксис команды:

```
ls [OPTIONS][FILE|FOLDER]
```

На месте \[OPTIONS\] задаем желаемую опцию, а затем ссылаемся на файл \[FILE\] или директорию \[FOLDER\]. Если при вводе не указывать наименование директории, то по умолчанию вы получите перечисление содержимого директории, с которой вы работаете в настоящий момент.

В некоторых случаях нет необходимости переходить в саму папку. Тогда можно использовать упрощенный вариант и указать сам путь в контексте с командой `Is`:

```
ls /PATH/TO/FILE
```

Способы указания пути мы описали выше.

###   


### Опции

`-a` – отображение всего содержимого директории, включая скрытые файлы (их имена начинаются с точки).

`-A` – отображение всех файлов, кроме скрытых.

`--author` – получение информации об авторе.

`-b` – вывод имени файла, даже если в нем содержатся служебные символы, которые не видны при печати.

`-B` – не выводить на экран резервные копии. Распознать резервную копию можно по знаку тильды `~` в конце имени.

`-с` – вывод файлов с сортировкой по времени внесения последнего изменения. По умолчанию новые файлы расположены первыми в колонке.

`-С` – вывод файлов колонками.

`-d` – вывод сведений о директории без вывода ее содержимого.

`-f` – отключение сортировки.

`-F` – включить видимость типа объекта. Узнать тип объекта можно по присвоенному символу, который отображается в конце названия файла.

`--full-time` – вывод информации в полном объеме, включая время в формате ISO.

`-i` – отобразить inode, в котором находится файл.

`-l` – вывести длинный список с подробной информацией.

`-g` – аналогичная с командой `-l`, но без вывода имени владельца.

`-m` – разделение элементов списка запятой.

`-1` (единица) – в каждой отдельной строке отображать информацию только по одному объекту.

`-n` – при выводе объектов названия оставлять без кавычек.

`-h` – для преобразования значений размера файлов в нужный формат. Автоматически размер файлов отображается в байтах без указания единицы измерения.

`--color` – данная опция позволяет использовать или отключить окрашивание объектов при выводе на экран. В качестве переменных можно использовать три значения, одно из которых – автоматический цветной вывод:

```
--color=autо/ always/ never
```

`-R` – отобразить список из подкаталогов путем рекурсивного вывода.

`-S` – вывод отсортированных файлов в зависимости от их размера. Объекты будут располагаться по списку от большего по размеру к меньшему.

`-Sr` – команда, противоположная предыдущей: файлы выводятся от меньшего к большему.

`-u` – сортировка объектов в зависимости от времени последнего доступа.

`-р` – если объект является директорией, то при выводе в конце названия отобразиться слэш.

`-q` – знак «?», если в имени файла есть управляющие символы NPC.

`-T` – с помощью данной опции можно задать значение ширины табуляции. Изначально оно равно 8.

`-w` – для задания ширины колонки.

`-v` – сортировка по номеру версии файла.

#### Использование нескольких опций одновременно

Команда `ls -l` в Linux позволяет вывести на экран длинный список из всех папок. Для того чтобы отобразить только выборочную информацию, данную опцию часто совмещают с другими.

`ls -lr` – вывести список всех элементов, отсортировав их в обратном порядке;

`ls -lt` – вывести информацию согласно дате последнего изменения;

`ls -l --author` – отобразить создателя документа.

Таким способом можно совмещать большинство опций.

Команда `ls -la` помимо основных файлов отображает скрытые документы с точкой в начале имени.

#### Сортировка файлов

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

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

```
ls -l --sort= WORD/-x
```

После знака равно вводятся параметры: `size`; `time`; `version`; `extension`. Также можно не писать слово целиком, а вводить только первую букву.

#### Задать формат вывода файлов на экран

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

```
--format=WORD/-x  
```

(функция задается в виде целого слова или символа)

`Across/ -x` – файлы расположены в алфавитном порядке по столбцам.

`Horizontal/ -x` – горизонтальный формат вывода.

`Vertical/ -C` – вывод столбцов по вертикали.

`Commas/ -m` – перечисление содержимого директории через запятую.

`Long/ -l` – подробная информация о файлах в виде длинного списка.

`Single-column/ -1` – расположить все файлы в одну колонку.

#### Формат вывода размера файлов

Чтобы просмотреть размер файлов в определенной единице измерения, используйте опцию:

```
--block-size=SIZE
```

После знака равно укажите первую букву единицы измерения (K, M, G и т.д.). В этом случае множитель равен 1024. Если вы указываете килобайты, мегабайты, то множитель равен 1000. Для этого можно воспользоваться отдельной опцией `--si`.

### Примеры использования команды

Теперь посмотрим, как используется команда `ls` в Linux на практике.

1. Открываем окно терминала.
2. Запускаем команду `ls` и задаем путь, если нужно.

- Чтобы перемещаться по директориям, используйте команду `cd` (change directory), используя синтаксис:

```
cd [местоположение]
```

Запускайте команду с аргументами, иначе вернетесь в домашнюю директорию.

- Чтобы узнать рабочую директорию, воспользуйтесь командой `pwd` (Print Working Directory). При запуске данной команды аргументы не используются.

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

Для начала введем команду в окне терминала, не используя аргументы. В этом случае мы получим список директорий и файлов в обычном формате.

```
ls
```

Вывод:

```
Videos   file.html lib    Downloads
File7   Pictures     Dir
Documents   020.Pcap   Public
```

Выведем файлы в обратной последовательности:

```
ls -r
```

Вывод:

```
Public 020.Pcap Documents
Dir Pictures File7
Downloads lib file.html Videos
```

Затем, чтобы вывести длинный список, задаем команду с `-l`:

```
ls -l
```

Вывод:

```
drwxr-xr-x. 3 root root 1785 Jun 29 10:11 Videos
-rw-r--r--. 2 root root 989 Aug 10 12:38 file.html  
-rw-r--r--. 2 root root 989 Aug 10 12:38 lib
drwxr-xr-x. 4 root root 1580 Jul 16 01:20 Downloads
-rw-r--r--. 1 root root 3948 Aug 09 03:01 File7  
drwxr-xr-x. 3 root root 5170 May 28 13:40 Pictures
drwxr-xr-x. 4 root root 3580 Jun 14 17:45 Dir
drwxr-xr-x. 1 root root 28320 Jul 25 10:11 Documents
-rw-r--r--. 2 root root 1444 May 27 17:45 020.Pcap  
drwxr-xr-x. 1 root root 32150 Jun 10 09:58 Public
```

Теперь интерпретируем то, что отобразилось у нас на экране с использованием команды длинного списка.

- 1 столбец: тип файла. Если в начале строки дефис, то речь идет про обычный файл. Если строка начинается с буквы d, то это директория.
- 2 столбец: следующие 9 букв и символов обозначают права доступа к данным элементам в ФС. Буква r – дает право на чтение файла; x – право на внесение записей в файл; xr – выполнение файла.
- 3 столбец: число указывает, сколько жестких ссылок указывают на этот файл.
- 4 столбец: в них отображается создатель объекта и файловая группа.
- 5 столбец: размер файла.
- 6 столбец: временные данные, когда в последний раз были внесены изменения.
- 7 столбец: название элемента, о котором выведена информация.

Попробуем поработать с этим списком. Сейчас выведем на экран скрытые файлы, используя следующую опцию:

```
ls -a
```

Вывод:

```
.opera  .gconf   . Videos  file.html
.libreoffice lib Downloads.cshrc File7 ..
Pictures  .pki Dir 020. Pcap   Public
```

Отсортируем файлы по дате последнего изменения:

```
ls -lt
```

Вывод:

```
-rw-r--r--. 2 root root 1444 May 27 17:45 020.Pcap  
drwxr-xr-x. 3 root root 5170 May 28 13:40 Pictures
drwxr-xr-x. 1 root root 32150 Jun 10 09:58 Public
drwxr-xr-x. 4 root root 3580 Jun 14 17:45 Dir
drwxr-xr-x. 3 root root 1785 Jun 29 10:11 Videos
drwxr-xr-x. 4 root root 1580 Jul 16 01:20 Downloads
-rw-r--r--. 2 root root 989 Aug 10 12:38 file.html  
drwxr-xr-x. 1 root root 28320 Jul 25 10:11 Documents
-rw-r--r--. 1 root root 3948 Aug 09 03:01 File7  
-rw-r--r--. 2 root root 989 Aug 10 12:38 lib
```

Протестируем опцию `-F`, чтобы узнать, какие объекты являются директориями:

```
ls -F
```

Вывод:

```
Videos/   file.html    Downloads/
File7  Pictures/   Dir/
Documents/   020. Pcap   Public/
```

###   


### Вывод

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