ll
верну этот результат:
51380224 Aug 3 08:23 tig_10.d1 51380224 Aug 3 08:18 tig_10.d10 51380224 Aug 3 08:20 tig_10.d11 51380224 Aug 3 08:23 tig_10.d12 51380224 Aug 3 08:21 tig_10.d13 51380224 Jul 31 12:06 tig_10.d14 131072 Jul 31 12:06 tig_10.d15 51380224 Aug 3 08:15 tig_10.d2 51380224 Aug 2 23:08 tig_10.d3 51380224 Aug 2 14:24 tig_10.d4 51380224 Aug 2 14:24 tig_10.d5 51380224 Aug 3 08:21 tig_10.d6 51380224 Aug 3 08:22 tig_10.d7 51380224 Aug 3 08:13 tig_10.d8 51380224 Aug 3 08:20 tig_10.d9
Не удалось перечислить файлы, как это
51380224 Aug 3 08:23 tig_10.d1 51380224 Aug 3 08:15 tig_10.d2 51380224 Aug 2 23:08 tig_10.d3 51380224 Aug 2 14:24 tig_10.d4 51380224 Aug 2 14:24 tig_10.d5 51380224 Aug 3 08:21 tig_10.d6 51380224 Aug 3 08:22 tig_10.d7 51380224 Aug 3 08:13 tig_10.d8 51380224 Aug 3 08:20 tig_10.d9 51380224 Aug 3 08:18 tig_10.d10 51380224 Aug 3 08:20 tig_10.d11 51380224 Aug 3 08:23 tig_10.d12 51380224 Aug 3 08:21 tig_10.d13 51380224 Jul 31 12:06 tig_10.d14 131072 Jul 31 12:06 tig_10.d15
Есть идеи как?
ls
пересортирует имена файлов, которые вы ему даете (или текущий каталог, если вы этого не сделаете); Один из способов обойти это – дать ему имена файлов отдельно:
ls -l *.d? ; ls -l *.d??
Или, поскольку у вас, кажется, есть псевдоним / функция для длинного листинга:
ll *.d?; ll *.d??
Я не знаю, что у тебя есть. ll
– это псевдоним ls -l
, но это не похоже на это.
В любом случае этот конкретный вывод может быть отсортирован в том порядке, в котором вы хотите, с помощью sort
GNU и его сортировки по версии, примененной к 5-му столбцу и более:
ll | sort -bVk5
Если ll
является псевдонимом ls
а ls
– GNU ls
, то для ls
также включена сортировка версий с помощью -v
.
С помощью оболочки zsh
можно сортировать глобусы аналогичным образом с numericglobsort
параметра numericglobsort
или numericglobsort
(n)
glob. Поэтому, если ваша команда ll
может получить список имен файлов в качестве аргумента и не выполняет дальнейшую сортировку, вы можете сделать это (только в zsh
и zsh
):
ll *(n)
Используя sort
:
$ ls -lghFG | sort -n -td -k2 total 0 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d1 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d2 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d3 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d4 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d5 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d6 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d7 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d8 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d9 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d10 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d11 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d12 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d13 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d14 -rw-r--r-- 1 0 Aug 3 09:43 tig_10.d15
Это будет использовать букву d
в качестве разделителя и отсортировать результаты численно в поле 2, поэтому могут возникнуть проблемы, если ваши имена файлов содержат букву d
.
Чтобы удовлетворить ваше требование использования ll
(который является псевдонимом), вы можете сделать (не рекомендуется:
alias ll='ls -lghFG | sort -n -td -k2'
от man
,
ll -v