コマンド紹介シリーズ:eza
コマンド紹介シリーズ第6回は、eza
というコマンドを紹介します。eza
はls
コマンドのモダンな代替コマンドとなっております。どのように使うかについて紹介していきたいと思います。
なお、前回の記事などもぜひ参照してもらえると嬉しいです。
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
その他のインストール方法については以下にまとめられていますのでぜひご参照ください。
ファイルの用意
今回コマンドのテストをするためのファイル構成を作るために、今流行りのclaude code
を使ってみました。claude code
の説明は省略しますが、CLIで動くclaude
ですね。claude
コマンドでlsコマンドとezaコマンドの比較をしたいので、様々な拡張子のファイルを作成してください。また、いくつかのネストフォルダを作成してその中にもファイルを配置してください。なお作成するファイルは空ファイルで問題ありません
と言うプロンプトを実行させました。
参考のために、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
lsコマンドの再帰表示がなぜか表示されない状態になっているので確認中ですが、ezaの色なし版です。。。