Как я могу перечислить файлы по классу / индикатору (как в ls -classify), а затем по имени?

ls --clasify добавляет индикатор (один из */=>@| ) в записи. Я хотел бы объединить записи одного и того же класса / индикатора вместе.

Я могу найти только ls --group-directories-first для группировки / вместе, как я могу группировать исполняемые файлы * , symlinks @ , pipe | и сокеты = , тоже?

ls не требуется, любой грязный взлом приветствуется. Но что касается стиля вывода, мне нужен многоколоночный цветной вывод с индикатором, похожий на то, что сделал ls -C --color -F .

  • Как файлы tar с отсортированным порядком?
  • Команда сортировки в нескольких полях
  • Насколько разумны утилиты unix?
  • Как можно сортировать поле CPU команды ps?
  • Как включить команду Diff в скрипт bash с подсказкой
  • команды сортировки и uniq не работают, как ожидалось, когда выполняются cron
  • Почему Gnu сортирует сортировку по-разному на моей машине OSX и машине Linux?
  • Сортировка STDIN по длине и количеству небилетов в скрипте Bash
  • 2 Solutions collect form web for “Как я могу перечислить файлы по классу / индикатору (как в ls -classify), а затем по имени?”

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

     ls -C --color -F -1 | rev | sort | rev 

    По существу:

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

    Это, к сожалению, имеет одноколоночный выход. Вы можете применить к нему column чтобы получить вывод из нескольких столбцов, но из-за непечатаемых символов столбцы перепутались:

     $ ls -C --color -F /proc/self/ -1 | rev | sort -i | rev | column -x fd/ task/ fdinfo/ attr/ ns/ net/ cwd@ exe@ root@ sched cmdline oom_score oom_score_adj oom_adj stack syscall mem comm statm wchan environ mountinfo io pagemap cgroup autogroup coredump_filter clear_refs maps numa_maps smaps mountstats limits mounts status stat schedstat cpuset auxv personality 

    И, конечно же, он предполагает оговорки:

    • нет новых строк в именах файлов
    • ни один из символов маркировки ls указан в именах файлов

    Функция bash, использующая комбинацию find , sort и ls , которая приближается:

     lsc () ( [[ -z $1 ]] && set . for path do [[ -d $path ]] || { ls -CF --color "$path"; echo; continue; } (( $# > 1 )) && printf '%s:\n' "$path" find "$path" -maxdepth 1 -mindepth 1 ! -iname '.*' -printf "%y %p\0" | while IFS= read -d '' -r entry do ftype="${entry:0:1}" fname="${entry:2}" [[ $ftype == f && -x $fname ]] && ftype=x printf "$ftype $fname\0" done | sort -z -k1 | sed -z 's/^. //; s:.*/::' | xargs -0 bash -c 'cd "$0"; ls -CFUd --color "$@"' "$path" (( $# > 1 )) && echo done ) 

    Используя само ls , печать на несколько столбцов становится намного проще.

    Используя тот же ls -CFUd что и muru, но в zsh , вы можете попробовать:

     setopt nullglob ls --color -CFUd -- *(/) *(*) *(@) *(p) *(=) *(^/*@p=) 

    где (...) являются glob-квалификаторами, сопоставляющими каталоги, исполняемые файлы, символические ссылки, каналы, сокеты и, соответственно, все остальное.

    Interesting Posts

    Ошибка разрешения Mongodb после изменения каталога данных

    Как сделать резервную работу fontconfig?

    Как получить byobu для запуска при запуске с выполненной командой, как root?

    окно изменения размера корицы по умолчанию по горячей клавише

    Что такое бесплатное программное обеспечение для веб-почты с открытым исходным кодом с поддержкой pgp?

    Использовать mdadm в качестве обходного пути из-за отсутствия поддержки badblocks в btrfs

    Как изменить размер шрифта, количество строк / столбцов на терминале

    Как создать непривилегированного пользователя в CentOS?

    Почему этот приращение для цикла возвращает плохую переменную?

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

    Как создать каталог для каждого файла в родительском каталоге

    Не удалось установить UEFI Fedora 21

    Как лучше копировать большое количество небольших файлов по scp?

    Есть ли у linux механизм Blackbox, когда система врезалась в встроенный Linux?

    Как получить полезное полное шифрование диска с различными шифрованиями для разных пользователей

    Linux и Unix - лучшая ОС в мире.