Bash
Список файлов
Поиск…
Синтаксис
- ls [OPTION] ... [FILE] ...
параметры
вариант | Описание |
---|---|
-a , --all | Перечислите все записи, включая те, которые начинаются с точки |
-A , - --almost-all | Перечислите все записи, кроме . и .. |
-c | Сортировка файлов по времени изменения |
-d , --directory | Список записей в каталоге |
-h , --human-readable | Показывать размеры в формате, читаемом человеком (например, K , M ) |
-H | То же, что и выше, только с мощностью 1000 вместо 1024 |
-l | Показать содержимое в формате long-listing |
-o | Формат длинного списка без информации о группе |
-r , --reverse | Показать содержимое в обратном порядке |
-s , --size | Размер печати каждого файла в блоках |
-S | Сортировать по размеру файла |
--sort=WORD | Сортировка содержимого по слову. (т.е. размер, версия, статус) |
-t | Сортировать по времени модификации |
-u | Сортировать по времени последнего доступа |
-v | Сортировать по версии |
-1 | Перечислить один файл на строку |
Список файлов
Команда ls
отображает содержимое указанного каталога, исключая dotfiles. Если каталог не указан, то по умолчанию указывается содержимое текущего каталога.
Перечисленные файлы сортируются по алфавиту по умолчанию и выравниваются по столбцам, если они не помещаются в одну строку.
$ ls
apt configs Documents Fonts Music Programming Templates workspace
bin Desktop eclipse git Pictures Public Videos
Список файлов в формате Long Listing
Параметр -l
команды ls
печатает содержимое указанного каталога в формате длинного списка. Если каталог не указан, то по умолчанию указывается содержимое текущего каталога.
ls -l /etc
Пример:
total 1204
drwxr-xr-x 3 root root 4096 Apr 21 03:44 acpi
-rw-r--r-- 1 root root 3028 Apr 21 03:38 adduser.conf
drwxr-xr-x 2 root root 4096 Jun 11 20:42 alternatives
...
На выходе сначала отображается total
, которое указывает общий размер в блоках всех файлов в указанном каталоге. Затем он отображает восемь столбцов информации для каждого файла в указанном каталоге. Ниже приведены данные для каждого столбца на выходе:
Номер столбца | пример | Описание |
---|---|---|
1,1 | d | Тип файла (см. Таблицу ниже) |
1.2 | rwxr-xr-x | Строка разрешения |
2 | 3 | Количество жестких ссылок |
3 | root | Имя владельца |
4 | root | Группа владельцев |
5 | 4096 | Размер файла в байтах |
6 | Apr 21 03:44 | Время модификации |
7 | acpi | Имя файла |
Тип файла
Тип файла может быть одним из следующих символов.
символ | Тип файла |
---|---|
- | Обычный файл |
b | Блокировать специальный файл |
c | Специальный файл символов |
C | Файл с высокой производительностью («смежные данные») |
d | каталог |
D | Дверь (специальный IPC-файл только в Solaris 2.5+) |
l | Символическая ссылка |
M | Офлайновый («перенесенный») файл (Cray DMF) |
n | Сетевой специальный файл (HP-UX) |
p | FIFO (названный канал) |
P | Порт (специальный системный файл только в Solaris 10+) |
s | Разъем |
? | Некоторые другие типы файлов |
Список файлов, отсортированных по размеру
Параметр -S
команды ls
сортирует файлы в порядке убывания размера файла.
$ ls -l -S ./Fruits
total 444
-rw-rw-rw- 1 root root 295303 Jul 28 19:19 apples.jpg
-rw-rw-rw- 1 root root 102283 Jul 28 19:19 kiwis.jpg
-rw-rw-rw- 1 root root 50197 Jul 28 19:19 bananas.jpg
При использовании с параметром -r
порядок сортировки меняется на противоположный.
$ ls -l -S -r /Fruits
total 444
-rw-rw-rw- 1 root root 50197 Jul 28 19:19 bananas.jpg
-rw-rw-rw- 1 root root 102283 Jul 28 19:19 kiwis.jpg
-rw-rw-rw- 1 root root 295303 Jul 28 19:19 apples.jpg
Список файлов без использования `ls`
Используйте расширения расширения и расширения файлов оболочки Bash для получения имен файлов:
# display the files and directories that are in the current directory
printf "%s\n" *
# display only the directories in the current directory
printf "%s\n" */
# display only (some) image files
printf "%s\n" *.{gif,jpg,png}
Чтобы захватить список файлов в переменную для обработки, обычно рекомендуется использовать массив bash :
files=( * )
# iterate over them
for file in "${files[@]}"; do
echo "$file"
done
Список десяти последних измененных файлов
Ниже перечислены до десяти последних измененных файлов в текущем каталоге, используя длинный формат списка ( -l
) и отсортированный по времени ( -t
).
ls -lt | head
Список всех файлов, включая Dotfiles
Dotfile - это файл, имена которого начинаются с символа .
, Они обычно скрыты ls
и не перечисляются, если только не запрашиваются.
Например, следующий вывод ls
:
$ ls
bin pki
-a
или --all
вариант будет список всех файлов, в том числе составляют скрытые.
$ ls -a
. .ansible .bash_logout .bashrc .lesshst .puppetlabs .viminfo
.. .bash_history .bash_profile bin pki .ssh
Параметр -A
или --almost-all
будет отображать все файлы, включая dotfiles, но не указывать подразумеваемые .
и ..
Обратите внимание, что .
это текущий каталог и ..
является родительским каталогом.
$ ls -A
.ansible .bash_logout .bashrc .lesshst .puppetlabs .viminfo
.bash_history .bash_profile bin pki .ssh
Список файлов в древовидном формате
Команда tree
выводит содержимое указанного каталога в древовидном формате. Если каталог не указан, то по умолчанию указывается содержимое текущего каталога.
Пример:
$ tree /tmp
/tmp
├── 5037
├── adb.log
└── evince-20965
└── image.FPWTJY.png
Используйте параметр -L
команды tree
, чтобы ограничить глубину отображения и параметр -d
только списком каталогов.
Пример:
$ tree -L 1 -d /tmp
/tmp
└── evince-20965