Сортировка выведенных файлов
7.4.6 Sort of Listing
По умолчанию ls
команда сортирует файлы в алфавитном порядке по имени файла. Иногда бывает полезно отсортировать файлы по разным критериям.
Чтобы отсортировать файлы по размеру, мы можем использовать -S
опцию. Обратите внимание на разницу в выводе следующих двух команд. Перечислены те же файлы и каталоги, но в другом порядке:
sysadmin@localhost:~$ ls /etc/ssh
moduli ssh_host_ecdsa_key.pub ssh_host_rsa_key sshd_config
ssh_config ssh_host_ed25519_key ssh_host_rsa_key.pub
ssh_host_ecdsa_key ssh_host_ed25519_key.pub ssh_import_id
sysadmin@localhost:~$ ls -S /etc/ssh
moduli ssh_host_ed25519_key ssh_host_ecdsa_key.pub
sshd_config ssh_host_rsa_key.pub ssh_host_ed25519_key.pub
ssh_host_rsa_key ssh_import_id
ssh_config ssh_host_ecdsa_key
Примечание
В приведенном выше варианте используется заглавная буква s.
Хотя этот -S
параметр работает сам по себе, он наиболее полезен при использовании с -l
параметром, позволяющим видеть размеры файлов. Следующая команда перечисляет файлы от самого большого к самому маленькому и отображает фактический размер файла.
sysadmin@localhost:~$ ls -lS /etc/ssh
total 580
-rw-r--r-- 1 root root 553122 Feb 10 2018 moduli
-rw-r--r-- 1 root root 3264 Feb 10 2018 sshd_config
-rw------- 1 root root 1679 Jul 19 06:52 ssh_host_rsa_key
-rw-r--r-- 1 root root 1580 Feb 10 2018 ssh_config
-rw------- 1 root root 411 Jul 19 06:52 ssh_host_ed25519_key
-rw-r--r-- 1 root root 399 Jul 19 06:52 ssh_host_rsa_key.pub
-rw-r--r-- 1 root root 338 Jul 19 06:52 ssh_import_id
-rw------- 1 root root 227 Jul 19 06:52 ssh_host_ecdsa_key
-rw-r--r-- 1 root root 179 Jul 19 06:52 ssh_host_ecdsa_key.pub
-rw-r--r-- 1 root root 99 Jul 19 06:52 ssh_host_ed25519_key.pub
Также может быть полезно использовать -h
опцию для отображения удобочитаемых размеров файлов:
sysadmin@localhost:~$ ls -lSh /etc/ssh
total 580K
-rw-r--r-- 1 root root 541K Feb 10 2018 moduli
-rw-r--r-- 1 root root 3.2K Feb 10 2018 sshd_config
-rw------- 1 root root 1.7K Jul 19 06:52 ssh_host_rsa_key
-rw-r--r-- 1 root root 1.6K Feb 10 2018 ssh_config
-rw------- 1 root root 411 Jul 19 06:52 ssh_host_ed25519_key
-rw-r--r-- 1 root root 399 Jul 19 06:52 ssh_host_rsa_key.pub
-rw-r--r-- 1 root root 338 Jul 19 06:52 ssh_import_id
-rw------- 1 root root 227 Jul 19 06:52 ssh_host_ecdsa_key
-rw-r--r-- 1 root root 179 Jul 19 06:52 ssh_host_ecdsa_key.pub
-rw-r--r-- 1 root root 99 Jul 19 06:52 ssh_host_ed25519_key.pub
Опция -t
сортирует файлы по времени их изменения. Сначала будут перечислены самые последние измененные файлы. Эту опцию можно использовать отдельно, но опять же, обычно она более полезна в сочетании с опцией -l
:
sysadmin@localhost:~$ ls -tl /etc/ssh
total 580
-rw------- 1 root root 227 Jul 19 06:52 ssh_host_ecdsa_key
-rw-r--r-- 1 root root 179 Jul 19 06:52 ssh_host_ecdsa_key.pub
-rw------- 1 root root 411 Jul 19 06:52 ssh_host_ed25519_key
-rw-r--r-- 1 root root 99 Jul 19 06:52 ssh_host_ed25519_key.pub
-rw------- 1 root root 1679 Jul 19 06:52 ssh_host_rsa_key
-rw-r--r-- 1 root root 399 Jul 19 06:52 ssh_host_rsa_key.pub
-rw-r--r-- 1 root root 338 Jul 19 06:52 ssh_import_id
-rw-r--r-- 1 root root 553122 Feb 10 2018 moduli
-rw-r--r-- 1 root root 1580 Feb 10 2018 ssh_config
-rw-r--r-- 1 root root 3264 Feb 10 2018 sshd_config
Важно помнить, что дата изменения каталогов представляет собой последний раз, когда файл был добавлен или удален из каталога.
Если файлы в каталоге были изменены много дней или месяцев назад, может быть сложнее точно сказать, когда они были изменены, поскольку для более старых файлов указывается только дата. Для получения более подробной информации о времени модификации вы можете использовать --full-time
опцию для отображения полной временной метки (включая часы, минуты, секунды). Он примет -l
вариант автоматически:
sysadmin@localhost:~$ ls -t --full-time /etc/ssh
total 580
-rw------- 1 root root 227 2018-07-19 06:52:16.000000000 +0000 ssh_host_ecdsa_key
-rw-r--r-- 1 root root 179 2018-07-19 06:52:16.000000000 +0000 ssh_host_ecdsa_key.pub
-rw------- 1 root root 411 2018-07-19 06:52:16.000000000 +0000 ssh_host_ed25519_key
-rw-r--r-- 1 root root 99 2018-07-19 06:52:16.000000000 +0000 ssh_host_ed25519_key.pub
-rw------- 1 root root 1679 2018-07-19 06:52:16.000000000 +0000 ssh_host_rsa_key
-rw-r--r-- 1 root root 399 2018-07-19 06:52:16.000000000 +0000 ssh_host_rsa_key.pub
-rw-r--r-- 1 root root 338 2018-07-19 06:52:16.000000000 +0000 ssh_import_id
-rw-r--r-- 1 root root 553122 2018-02-10 02:31:46.000000000 +0000 moduli
-rw-r--r-- 1 root root 1580 2018-02-10 02:31:46.000000000 +0000 ssh_config
-rw-r--r-- 1 root root 3264 2018-02-10 02:31:46.000000000 +0000 sshd_config
С помощью параметра можно выполнить обратную сортировку -r
. Его можно использовать отдельно или в сочетании с параметрами -S
или -t
. Следующая команда отсортирует файлы по размеру, от меньшего к большему:
sysadmin@localhost:~$ ls -lrS /etc/ssh
total 580
-rw-r--r-- 1 root root 99 Jul 19 06:52 ssh_host_ed25519_key.pub
-rw-r--r-- 1 root root 179 Jul 19 06:52 ssh_host_ecdsa_key.pub
-rw------- 1 root root 227 Jul 19 06:52 ssh_host_ecdsa_key
-rw-r--r-- 1 root root 338 Jul 19 06:52 ssh_import_id
-rw-r--r-- 1 root root 399 Jul 19 06:52 ssh_host_rsa_key.pub
-rw------- 1 root root 411 Jul 19 06:52 ssh_host_ed25519_key
-rw-r--r-- 1 root root 1580 Feb 10 2018 ssh_config
-rw------- 1 root root 1679 Jul 19 06:52 ssh_host_rsa_key
-rw-r--r-- 1 root root 3264 Feb 10 2018 sshd_config
-rw-r--r-- 1 root root 553122 Feb 10 2018 moduli
Следующая команда выведет список файлов по дате изменения, от самого старого до самого нового:
sysadmin@localhost:~$ ls -lrt /etc/ssh
total 580
-rw-r--r-- 1 root root 3264 Feb 10 2018 sshd_config
-rw-r--r-- 1 root root 1580 Feb 10 2018 ssh_config
-rw-r--r-- 1 root root 553122 Feb 10 2018 moduli
-rw-r--r-- 1 root root 338 Jul 19 06:52 ssh_import_id
-rw-r--r-- 1 root root 399 Jul 19 06:52 ssh_host_rsa_key.pub
-rw------- 1 root root 1679 Jul 19 06:52 ssh_host_rsa_key
-rw-r--r-- 1 root root 99 Jul 19 06:52 ssh_host_ed25519_key.pub
-rw------- 1 root root 411 Jul 19 06:52 ssh_host_ed25519_key
-rw-r--r-- 1 root root 179 Jul 19 06:52 ssh_host_ecdsa_key.pub
-rw------- 1 root root 227 Jul 19 06:52 ssh_host_ecdsa_key
Last updated