Есть ли способ предоставить настраиваемые правила сортировки для команды "ls"?

Я работаю в области материаловедения, поэтому многие из моих каталогов названы химическим элементом или уравнением. В качестве таких, ls а также ls -v перечислите мои каталоги из химического заказа. Я знаю, что могу переименовать мои каталоги, чтобы они начинались с атомного номера элемента, но я не хочу этого делать. Мне было интересно, есть ли простой способ, которым я мог бы предоставить индивидуальные правила для ls такой, что он будет перечислять каталоги в соответствии с атомным номером элемента, а не в алфавитном или числовом порядке. Если бы была альтернатива ls это тоже было бы приемлемо.

1 ответ

Сделайте несколько тестовых каталогов:

cd /tmp
for atom in H He Li Be B C N O F Ne Na;do mkdir $atom-directory;done

Атомный номер для каждого символа:

export ATOMS="H 1 He 2 Li 3 Be 4 B 5 C 6 N 7 O 8 F 9 Ne 10 Na 11" #and so on...

Сделайте функцию bash, убедитесь, что все в одной строке:

atomls () { for f in $(perl -le'%m=split" ",$ENV{ATOMS};$re=join"|",keys%m;print for map$$_[0],sort{$m{$$a[1]}<=>$m{$$b[1]}}map[$_,/($re)\b/],@ARGV' $*);do ls -ld $f; done }

Запустить его:

atomls *

Результат:

drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 H-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 He-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 Li-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 Be-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 B-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 C-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 N-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 O-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 F-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 Ne-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 Na-directory

Укажите только два буквенных атома:

atomls ??-dir*
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 He-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 Li-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 Be-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 Ne-directory
drwxrwxr-x 2 idiot idiot 4096 okt.  22 19:56 Na-directory

Там могут быть лучшие способы...

Другие вопросы по тегам