ls -l – групповые каталоги – сначала (действуют также на символические ссылки)

ls option --group-directories-first заставляет каталоги перечисляться сверху, что делает вывод ls приятным и чистым:

 ls -l --group-directories-first 

Однако он не действует на symlinks , которые на самом деле являются symlinks на каталоги. Существует возможность использовать

 ls -l -L --group-directories-first 

в котором будут перечислены оба типа каталогов сверху, но не будет различать правильную директорию и символическую директорию, которая снова запутывает.

Может ли показывать отображаемые символические каталоги сверху, сохраняя при этом их отличные от обычных каталогов?

EDIT: Я использую bash .

One Solution collect form web for “ls -l – групповые каталоги – сначала (действуют также на символические ссылки)”

Нет, но если вы используете zsh , вы можете сделать:

 mll() { (($#)) || set -- *(N-/) *(N^-/) (($#)) && ls -ldU -- $@ } 

Вы также можете определить порядок сортировки глобусов, например:

 dir1st() { [[ -d $REPLY ]] && REPLY=1-$REPLY || REPLY=2-$REPLY;} 

и используйте его так:

 ls -ldU -- *(o+dir1st) 

Таким образом, вы можете использовать его для других команд, чем ls или ls с разными параметрами, или для разных шаблонов, таких как:

 ls -ldU -- .*(o+dir1st) # to list the hidden files and dirs 

или:

 ls -ldU -- ^*[[:lower:]]*(o+dir1st) # to list the all-uppercase files and dirs 

Если вам нужно использовать bash , эквивалент будет выглядеть так:

 mll() ( if (($# == 0)); then dirs=() others=() shopt -s nullglob for f in *; do if [[ -d $f ]]; then dirs+=("$f") else others+=("$f") fi done set -- "${dirs[@]}" "${others[@]}" fi (($#)) && exec ls -ldU -- "$@" ) 

bash не имеет квалификаторов globbing или любого способа повлиять на порядок сортировки глобусов или каким-либо образом превратить nullglob на основе каждого шага или иметь локальный контекст для параметров (кроме запуска подоболочки, следовательно, вместо () вместо {} выше) AFAIK.

  • смотреть случайно упорядоченные видео в одном экземпляре mpv
  • zsh не работает при завершении пути, когда команда vim
  • Как настроить zsh-запрос, чтобы его длина была пропорциональна ширине терминала
  • Тысяча разделителей в printf в zsh
  • Изменение оболочки по умолчанию без привилегий chsh или администратора
  • Синтаксис команды повторения в zsh
  • Поиск тестируемой утилиты для получения абсолютного пути к относительной целевой символической ссылке
  • Завершение Zsh по второй команде или после псевдонима?
  • ZSH для автоматического заполнения каталогов в аргументах командной строки?
  • Запустите git fetch после любой команды cd
  • Команда Wrap в подсказке
  • Ищете карту xinit / startx rabbithole
  • Linux и Unix - лучшая ОС в мире.