💭

コマンド紹介シリーズ:eza

に公開1

コマンド紹介シリーズ第6回は、ezaというコマンドを紹介します。ezalsコマンドのモダンな代替コマンドとなっております。どのように使うかについて紹介していきたいと思います。

なお、前回の記事などもぜひ参照してもらえると嬉しいです。

https://zenn.dev/akasan/articles/a57b277ee7af27

ezaとは?

ezaとは公式ページの言及をみると

eza is a modern alternative for the venerable file-listing command-line program ls that ships with Unix and Linux operating systems, giving it more features and better defaults. It uses colours to distinguish file types and metadata. It knows about symlinks, extended attributes, and Git. And it’s small, fast, and just one single binary.

とあり、翻訳すると

  • UnixおよびLinuxオペレーティングシステムに同梱されている、古くからあるファイルリスト表示コマンドラインプログラムlsの現代的な代替品
  • ファイルの種類とメタデータを色で区別し、シンボリックリンク、拡張属性、Gitにも対応
  • サイズが小さく、高速で、単一のバイナリで動作

と言うことです。lsコマンドをよりリッチにし、かつ高速で動くと言うことで、シェルをメインで使われる方からすると魅力的なのではないでしょうか!

使ってみる!

インストール方法

霊の如く私はmacbookを使っているので、以下のコマンドでインストールしました。

brew install eza

その他のインストール方法については以下にまとめられていますのでぜひご参照ください。

https://github.com/eza-community/eza/blob/main/INSTALL.md

ファイルの用意

今回コマンドのテストをするためのファイル構成を作るために、今流行りのclaude codeを使ってみました。claude codeの説明は省略しますが、CLIで動くclaudeですね。claudeコマンドでlsコマンドとezaコマンドの比較をしたいので、様々な拡張子のファイルを作成してください。また、いくつかのネストフォルダを作成してその中にもファイルを配置してください。なお作成するファイルは空ファイルで問題ありませんと言うプロンプトを実行させました。

https://docs.anthropic.com/ja/docs/claude-code/overview

参考のために、claudeの出力ログは以下のようになりました。

また、treeコマンドで確認すると以下のようになります。

lsコマンドで確認する

それではまずlsコマンドで確認してみましょう。詳細な情報をみるためにls -laを実行してみたところ、以下のようになりました。

もちろん慣れている人からしたら何も問題はないですが、色の設定を手動で指定する必要があったり、拡張子ごとに表示の違いがあるわけでもなくみにくいと言えば醜いですね。また、-Rオプションで再帰的に表示させると以下のようになります(長くなるので一部抜粋)。先ほどと同じように、再帰的には表示できていますがカラーリングなどが特別働いているわけではないですね。

ezaを使ってみる

それではezaを試してみましょう。ezaのオプションはlsと互換があるものが多いので、先ほどのようにeza -laで実行してみると以下のようになりました。

みるとわかるように拡張子の種類によって色を自動で変更してくれ、また権限周りの表示もカラーリングされとてもみやすくなっています。また、--iconsと言うオプションを使うとファイルのアイコンを自動で追加してくれます。

それではこちらの例でも再帰的に表示させてみましょう。eza-Rオプションで再帰的に処理させることができます。

こちらもlsコマンドと同様再帰的に表示できていますが、アイコンがつけられたり色が自動でついたりと可読性がましています。また違いとして...などの相対パスの表示が省略されているため、全体的に行数がコンパクトになっているのも個人的には好みです。

普段の使い方

私はezaを導入するまではll=ls -laとしてエイリアスを貼っていたんですが、今はll=eza --icons -al --group-directories-firstのようにエイリアスを貼っています。また最初に表示したtreeも実はezaを使っていて、tree='eza --icons -al -T -L 2'のようなエイリアスを貼っています。

便利オプション紹介

いくつかオプションを紹介しようと思います。

  • -T/--tree: tree形式で表示できます(上記例参照)

  • --absolute: 絶対パスで表示できます

  • -f/--only-files: ファイルだけ表示

  • -D/--only-dirs: フォルダだけ表示

  • --git-ignore: .gitignoreに設定されたファイルを除去して表示。以下の例ではtxt, html, js, cssを除去した例

まとめ

今回はezaコマンドについて紹介しました。lsコマンドでも十分事足りますし標準搭載コマンドとして一番便利だとは思いつつ、カスタマイズ可能な環境であれば自分はezaを導入してみやすくするかなと思います。もしlsコマンドをもっとみやすくカスタマイズしたいなと思っていた方がいれば参考にしてもらえたらと思います。

Discussion

AkasanAkasan

lsコマンドの再帰表示がなぜか表示されない状態になっているので確認中ですが、ezaの色なし版です。。。