Команда ls обычно используется в Unix-подобных операционных системах для вывода списка файлов и каталогов внутри каталога. Хотя `ls` является стандартной командой для этой цели, существует несколько альтернатив и усовершенствований, предоставляющих дополнительные возможности и опции. Я уже давно использую exa. Она полюбилась многим пользователям благодаря своей универсальности, скорости работы, стабильности и широкому набору функций.
По описанию её автора, Бенджамина Саго (a.k.a. Ogham): "exa - это улучшенный файловый листер с большим количеством функций и лучшими настройками по умолчанию. Он использует цвета для различения типов файлов и метаданных. Он знает о симлинках, расширенных атрибутах и Git. И он маленький, быстрый и это всего один-единственный бинарник."
Сегодня, при обновлении установленных пакетов, brew сообщил, что пакет `exa` уже устарел и больше не поддерживается. Я сходил на exa GitHub repo (~23K⭐️), и это печально, но факт - основная новость гласит, что exa уже не поддерживается ☹️ Однако мир не без добрых людей, которые страстно желают сохранить жизнь ценных проектов. Они сделали форк проекта под названием eza, и он активно поддерживается профессиональной командой.
Если ты использовал "exa" и хочешь перейти на "eza", то на твоём Mac этот процесс прост:
brew remove exa
brew install eza
После установки обнови свои алиасы по необходимости, чтобы они соответствовали твоему привычному использованию.
Первый раз?
Если ты только что наткнулся на этот замечательный инструмент, то после его установки с помощью `brew install eza` отредактируй файл конфигурации своей оболочки и добавь туда следующие строки, приведенные ниже. Поскольку я использую zsh с OhMyZsh, я отредактировал .zshrc и добавил туда эти строки:
ld='eza -lD'
lf='eza -lF --color=always | grep -v /'
lh='eza -dl .* --group-directories-first'
ll='eza -al --group-directories-first'
ls='eza -alF --color=always --sort=size | grep -v /'
lt='eza -al --sort=modified'
Сейчас я объясню, что они делают..... Но сначала напомню, что какую бы команду ты ни вызвал, она работает в том каталоге, в котором ты сейчас находишься!
ld - выводит только каталоги (без файлов)
lf - выводит только файлы (без каталогов)
lh - выводит только скрытые файлы (без каталогов)
ll - выводит всё, причём каталоги идут первыми
ls - выводит только файлы, отсортированные по размеру
lt - выводит все файлы, отсортированные по времени обновления
Некоторые возможности eza, которых нет в exa (неполный перечень):
- Исправляет ошибку "The Grid Bug", появившуюся в exa 2021
- Поддержка гиперссылок
- Вывод контекста Selinux
- Вывод статуса Git-репозитория
- Человекочитаемые относительные даты
- Несколько исправлений безопасности (см. dependabot).
- Множество мелких исправлений/изменений
Чтобы изучить другие опции обратись к официальному репо eza на GitHub.
Больше альтернатив
Если горишь желанием увидеть альтернативные решения, то я бы упомянул только два.
👉 Первое - это lsd, или "следующее поколение ls", написанное на Rust. GitHub repo lsd имеет почти 11K звёзд.
👉 Другое - это colorls, гем Ruby, который улучшает команду ls в терминале, добавляя цвета и шрифтовые иконки. GitHub repo colorls имеет ~5K звёзд.
Можешь изучить еще больше альтернатив, но я настоятельно рекомендую пользоваться eza.
Итоги
Подводя итог, можно с уверенностью сказать, что eza станет твоей основной заменой команде "ls", используемой совершенно естественным образом, с большим комфортом и продуктивностью. Уверен, что это поможет тебе улучшить работу в терминале и повысить продуктивность!
В видео ты сможешь увидеть, как всё это работает, и узнать несколько полезных советов и приёмов.
Ссылка на видео на YouTube: https://youtu.be/tM0hyO3HSxQ
Успехов.
😉