Я предполагаю, что Вы используете GRUB.
С GRUB 1 (наследие GRUB, версии 0.9x), в /boot/grub/menu.lst
, ввести hiddenmenu
. Нажмите клавишу ESC для показа меню.
#General configuration:
#Uninterupted within 5 seconds and default boot option 0.
timeout 5
default 0
color light-blue/black light-cyan/blue
#Hides the menu by default (press ESC to see the menu)
hiddenmenu
Если Вы используете GRUB 2 (версии 1.9x и), /boot/grub/grub.cfg
содержит меню. Но изменить настройки, отредактируйте /etc/default/grub
файл.
Используйте n
спецификатор шарика.
print -lr -- *.mp3(n)
Можно изменить порядок сортировки по умолчанию путем установки numeric_glob_sort
опция.
setopt numeric_glob_sort
print -lr -- *.mp3
Если Вам нужен лексикографический порядок на один шаблон в то время как numeric_glob_sort
может быть в действительности, инвертировать n
спецификатор шарика.
print -lr -- *(^n)
Один подход должен был бы выполнить вывод ls
посредством команды sort
управлять, как вывод отображен.
Можно использовать -h
(иначе. --human-numeric-sort
) какие вещи видов в человекочитаемой форме.
$ ls | sort -h
1 - Main title.mp3
2 - Main title.mp3
10 - Main title.mp3
Вышеупомянутое может быть перенесено в псевдоним как так:
$ alias lss="ls | sort -h"
Выполнение вышеупомянутой команды было бы затем уменьшено до этого:
$ lss
1 - Main title.mp3
2 - Main title.mp3
10 - Main title.mp3
*
.
– Sardathrion - Reinstate Monica
26.04.2013, 16:38
Можно изменить порядок сортировки в zsh
globbing (см. ответ Gilles), но ls
отсортирует его аргументы так или иначе, и по умолчанию лексикографически.
Если Ваш ls
GNU ls
, можно использовать -v
опция отсортировать численно:
ls -1v
Или:
ls -1vd -- *
Это не эквивалентно sort -h
потому что sort -h
должен отсортировать вещи как вывод du -h
, это то, где 1.12G
больше, чем 999M
, в то время как ls -v
и zsh
(n)
спецификаторы globbing приспособлены к сортировке вещей как номера версий (где 1.20 больше, чем 1,4, например).
Если Вы действительно хотите globbing, которые понимают, что это достаточно, необходимо было бы записать zsh функцию вида для этого.
С zsh можно определить порядок сортировки шарика с функцией и использовать его как *(o+that-function)
. that-function
берет имя файла к виду в $REPLY
переменная и должна возвратиться в ту же самую переменную, что-то это zsh
может затем отсортировать лексикографически (или численно если n
также обеспечивается).
Что-то как:
h() {
local -A x
local match
setopt localoptions extendedglob
x=(k 1 K 1 M 2 G 3 T 4 P 5 E 6)
REPLY=${REPLY//(#b)((|[0-9]#.)[0-9]##)([${(kj::)x}])/$((match[1]*2**$x[$match[3]]0))}
}
был бы заменять весь 1.1G к их значению (1181116006.4).
Который можно затем использовать как:
ls -1Ud -- *(no+h)
(-U
быть GNU ls
опция сказать ls
не отсортировать его аргументы).
Это не будет работать хорошо однако с числами с дробной частью, поскольку она отсортировала бы 1.20
после 1.3
например:
$ ls
1.20 1.3 3.1G 500M
$ ls -v1Ud -- *(no+h)
1.3
1.20
500M
3.1G
Для чего-то, что отсортировало бы все виды десятичных плавающих чисел с дополнительным, достаточен (как-1e20M, 1E-20, 100k, 3000M), потому что zsh
может только отсортировать лексикографически или численно ограниченный положительными десятичными целыми числами, нам была бы нужна функция для преобразования целых чисел или в строки что вид лексикографически в том же порядке или в положительные десятичные целые числа что вид численно в том же порядке.
zsh
делает и десятичную систему счисления с плавающей точкой с числами на 64 бита где это возможно, таким образом, мы могли применить функцию с плавающей точкой, которая поворачивает те числа (или по крайней мере диапазон, поддерживаемый zsh
плавания) в целое число от 0 до 263. Используя логарифм функция могла быть опцией. Что-то как:
zmodload zsh/mathfunc
h() {
local -A x
local match v
setopt localoptions extendedglob
x=(k 1 K 1 M 2 G 3 T 4 P 5 E 6 Z 7 Y 8)
REPLY=${REPLY//(#b)([-+]|)(([0-9]#.|)[0-9]##([eE]([-+]|)[0-9]##|))\
([${(kj::)x}]|)/[$(([#10]1e15*(1500+ $match[1](745+log((v=$match[2]\
${${match[2]##*[Ee.]*}:+.}*2.**$x[$match[6]]0)==0?2.48e-324:v)))))]}
}
Использоваться как:
print -rl -- *(no+h)
Или, для отступания к числовой сортировке для дифференциации 100000000000000001 и 100000000000000002, например (которые имеют тот же логарифм с zsh
точность плавающая):
print -rl -- *(noe:h:on)
Затем мы получаем что-то еще лучше, чем sort -h
:
$ ls | sort -h
-4
-3
+20
a2
b1
b10
b2
1e-20Y
1e3
1.20
1.3
3
20
999
1000 1e9
1000 900M
1001
1024
1k
12k
0.000000001G
$ print -rl -- *(noe:h:on)
-4
-3
0.000000001G
1.20
1.3
3
20
+20
999
1e3
1000 900M
1000 1e9
1001
1k
1024
1e-20Y
12k
a2
b1
b2
b10
Теперь, для Вашей определенной nyxmms2 проблемы, для дополнения ответа Gilles я Вы - ленивая машинистка, Вы могли также определить на этот раз выбор (вместо того, чтобы "заказать") функция для музыкальных файлов, как:
m() [[ $REPLY == (#i)*.(mp3|ogg)(-.) ]]
nyxmms2 *Zep*(n+m)
Или использование переменная:
m='.(#i)(mp3|ogg)(n-.)'
nyxmms2 *Zep*$~m
Или глобальный псевдоним:
alias -g @m='./*.(#i)(mp3|ogg)(n-.)'
nyxmms2 @m
Включать numericglobsort для nyxmms2
только, Вы могли сделать:
preexec() {[[ $1 = nyxmms2* ]] && setopt numericglobsort}
precmd setopt nonumericglobsort
Вы могли всегда использовать расширение оболочки, чтобы сделать это.
nyxmms2 add $(ls /path/to/dir/*.mp3 | sort -n)
так как Вы имеете дело с музыкой, Вы могли бы создать "плей-листы"
ls /path/to/album/or/song/*.mp3 | sort -n >> /path/to/playlist
nyxmms2 add < /path/to/playlist
*
.
– Sardathrion - Reinstate Monica
26.04.2013, 16:40
sort -n
... с zsh
Вы могли использовать расширение параметра на вид, но это не интерпретирует 2 как являющийся больше, чем 10 (ls *(n)
)
– h3rrmiller
26.04.2013, 17:47
n
флаг только понимает положительные целочисленные десятичные числа (никакое отрицание, никакие плавания, никакой k/M/G/T... не достаточен какsort -h
делает, никакое шестнадцатеричное число, и числа с продвижением 0s рассматривают как десятичное число, не восьмеричное) – Stéphane Chazelas 28.04.2013, 11:11