Выполните сортировку команды ls по типу файла (например, по каталогам и расширению файла)


15

Как сделать lsсортировку по типу файла (например, сначала по каталогам, а затем по расширению)? Ответы, предложенные в (Super User), заставляют сортировку ls по типу файла приводить к неизвестным ошибкам опций ls.


2
Незначительные исправления в отношении вашего заголовка: ls не является командой bash; это отдельный исполняемый файл, расположенный по адресу /bin/ls.
Bneely

Ответы:


21

Как вы узнали, дарвиновская версия lsкоманды не поддерживает эту -X | --sort=extensionопцию. Эта опция уникальна для версии GNU ls.

Вы можете получить версию GNU lsдля вашей системы. Самый простой способ сделать это через менеджер пакетов Homebrew и систему портирования. С Homebrew установлено сделать:

brew install coreutils

добавить пакет GNU Core Utilities в вашу систему. Все утилиты будут иметь префикс, gчтобы они не вступали в конфликт со стандартными утилитами Darwin, с которыми поставляется OS X.

Установив GNU Core Utilites, вы можете:

gls -X

И вы увидите результат, отсортированный по вашему желанию.

Если вы хотите использовать GNU Core Utils вместо утилит, поставляемых с OS X, вы можете поместить в свой ~/.bashrcфайл следующую строку :

source /usr/local/Cellar/coreutils/8.14/aliases

И вам больше не нужно использовать gпрефикс в командах. Я скажу, что это не совсем безопасно, поскольку некоторые утилиты GNU отличаются от встроенных функций bash и инструментов Darwin тем, как они ведут себя, настолько, что они могут испортить другие вещи в вашей сессии оболочки. Так что делайте это с осторожностью.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.