Як зробити lsсортування за типом файлу (наприклад, спочатку каталоги, а потім за розширенням файлу)? Відповіді, запропоновані в (Супер Користувач) Зробіть сортування за типом файлу, приводячи до невідомих помилок опції ls.
Як зробити lsсортування за типом файлу (наприклад, спочатку каталоги, а потім за розширенням файлу)? Відповіді, запропоновані в (Супер Користувач) Зробіть сортування за типом файлу, приводячи до невідомих помилок опції ls.
Відповіді:
Як ви з’ясували, версія lsкоманди Дарвіна не підтримує цей -X | --sort=extensionваріант. Цей параметр унікальний для GNU версії ls.
Ви можете отримати версію GNU lsдля вашої системи. Найпростіший спосіб зробити це через менеджер пакунків Homebrew і систему перенесення. З встановленим Homebrew зробіть:
brew install coreutils
додати пакет GNU Core Utilities до вашої системи. Усі утиліти будуть встановлені з префіксом, gщоб вони не стикалися з типовими утилітами Дарвіна, з якими постачається OS X.
З інстальованими GNU Core Utilites тепер ви можете:
gls -X
І ви побачите вихід відсортований за вашим бажанням.
Якщо ви хочете використовувати основні утиліти GNU замість утиліт, що постачаються з OS X, ви можете помістити у ~/.bashrcфайл наступний рядок :
source /usr/local/Cellar/coreutils/8.14/aliases
І вам більше не потрібно буде використовувати gпрефікс команд. Я скажу, що це не зовсім безпечна річ, оскільки деякі утиліти GNU відрізняються від вбудованих башів та інструментів Дарвіна тим, як вони ведуть себе, достатньо, щоб вони могли накрутити інші речі у вашому сеансі оболонки. Тому робіть це обережно.
Спираючись на відповідь у пов'язаній статті Super User :
ls -l |sort -d -k 1.1,1.1r -k 9 | cut -c 50-
Якщо ви хочете побачити весь вихід ls -l, просто залиште cutчастину.
/bin/ls.