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

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

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

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

  • Помощь с модификацией команды
  • Как сортировать файлы по части имени файла?
  • бездисковый поиск дубликатов имен файлов
  • Установленный coreutils на CentOS для sort -human-readable флага, но он все еще не работает
  • Как получить сортировку unix для сортировки в том же порядке, что и Java (по значению unicode)
  • Как использовать grep, sort и uniq для создания трех полей вывода
  • Как сортировать с разделителем длиной несколько символов?
  • Поиск файлов, содержащих строку, и список их имен, отсортированных по дате изменения
  • 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

    Ошибка компиляции wmctrl – отсутствует библиотека

    Изменяет ли gnome-терминал PATH при вызове оболочки

    Как понять таблицу разделов на гибридный образ ISO?

    Как вы можете объединить все строки, которые заканчиваются символом обратной косой черты?

    чашки – сломанная труба

    Обнаружение состояния power_supply для другого устройства в правиле udev

    Xming не показывает окно xclock

    Сохранение возможностей завершения вкладок в файл

    Как изменить раскладку клавиатуры в Centos6.6, xfce4.8

    Как NFS делится «RO» для всех пользователей и «RW» на некоторые IP-адреса

    Кали отключается от WiFi при использовании инструментов

    Как я могу добавить действие в Nemo (Linux Mint) для воспроизведения нескольких mp3-файлов в плейлисте vlc?

    Как отключить изменение размера терминала

    Отключите USB-устройство хранения / порт, чтобы избежать энергопотребления

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

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