3 ポイント 投稿者 GN⁺ 2024-07-23 | 1件のコメント | WhatsAppで共有

eza

eza の紹介

  • eza は Unix および Linux オペレーティングシステムで標準提供されるファイル一覧コマンド ls のモダンな代替品
  • ファイルの種類とメタデータを区別するために色を使用
  • シンボリックリンク、拡張属性、Git を認識
  • 小さく高速で、単一バイナリとして提供
  • ユーザーフレンドリーで機能豊富な ls の代替を目指している

eza の主な機能

  • exa 2021 で発生した「グリッドバグ」を修正
  • ハイパーリンク対応
  • マウントポイントの詳細を提供
  • Selinux コンテキストを出力
  • Git リポジトリの状態を出力
  • 人間に読みやすい相対日付を表示
  • 複数のセキュリティ修正
  • 明るいターミナルカラーに対応
  • さまざまな小さなバグ修正と変更

インストール方法

  • eza は Windows、macOS、Linux で利用可能
  • プラットフォームおよびディストリビューション別のインストール手順は INSTALL.md で確認可能

コマンドラインオプション

表示オプション

  • -1, --oneline: 1 行に 1 項目を表示
  • -G, --grid: 項目をグリッド形式で表示(デフォルト)
  • -l, --long: 拡張された詳細情報と属性を表示
  • -R, --recurse: ディレクトリを再帰的に探索
  • -T, --tree: ディレクトリをツリー形式で再帰的に探索
  • -x, --across: グリッドを横方向に整列
  • -F, --classify=(when): ファイル名に種類を表示(常時、自動、なし)
  • --colo[u]r=(when): ターミナルカラーを使用するタイミングを設定(常時、自動、なし)
  • --colo[u]r-scale=(field): field のレベルを区別して強調(all、age、size)
  • --color-scale-mode=(mode): --color-scale で固定色またはグラデーションを使用(fixed、gradient)
  • --icons=(when): アイコンを表示するタイミングを設定(常時、自動、なし)
  • --hyperlink: 項目をハイパーリンクとして表示
  • --absolute=(mode): 項目を絶対パスで表示(on、follow、off)
  • -w, --width=(columns): 画面幅を列単位で設定

フィルタリングオプション

  • -a, --all: 隠しファイルおよびドットファイルを表示
  • -d, --list-dirs: ディレクトリを通常のファイルのように一覧表示
  • -L, --level=(depth): 再帰の深さを制限
  • -r, --reverse: ソート順を逆転
  • -s, --sort=(field): ソートするフィールドを設定
  • --group-directories-first: ディレクトリをほかのファイルより先に一覧表示
  • -D, --only-dirs: ディレクトリのみ一覧表示
  • -f, --only-files: ファイルのみ一覧表示
  • --no-symlinks: シンボリックリンクを表示しない
  • --show-symlinks: シンボリックリンクを明示的に表示
  • --git-ignore: .gitignore に記載されたファイルを無視
  • -I, --ignore-glob=(globs): 無視するファイルのグロブパターンを設定

長い表示オプション

  • -b, --binary: ファイルサイズをバイナリ接頭辞で表示
  • -B, --bytes: ファイルサイズをバイト単位で表示
  • -g, --group: 各ファイルのグループを表示
  • -h, --header: 各列にヘッダー行を追加
  • -H, --links: 各ファイルのハードリンク数を表示
  • -i, --inode: 各ファイルの inode 番号を表示
  • -m, --modified: 更新タイムスタンプフィールドを使用
  • -M, --mounts: マウントの詳細を表示(Linux および macOS のみ)
  • -S, --blocksize: 割り当てられたファイルシステムブロックサイズを表示
  • -t, --time=(field): 使用するタイムスタンプフィールドを設定
  • -u, --accessed: アクセスされたタイムスタンプフィールドを使用
  • -U, --created: 作成タイムスタンプフィールドを使用
  • -X, --dereference: ファイル情報についてシンボリックリンクを解決
  • -Z, --context: 各ファイルのセキュリティコンテキストを表示
  • -@, --extended: 各ファイルの拡張属性とサイズを表示
  • --changed: 変更タイムスタンプフィールドを使用
  • --git: 各ファイルの Git 状態を表示
  • --git-repos: 各ディレクトリの Git 状態を表示
  • --git-repos-no-status: ディレクトリが Git リポジトリかどうかのみを表示(より高速)
  • --no-git: Git 状態を表示しない
  • --time-style: タイムスタンプ形式を設定
  • --total-size: 再帰的なディレクトリサイズを表示
  • --no-permissions: 権限フィールドを表示しない
  • -o, --octal-permissions: 各ファイルの権限を 8 進数形式で表示
  • --no-filesize: ファイルサイズフィールドを表示しない
  • --no-user: ユーザーフィールドを表示しない
  • --no-time: 時間フィールドを表示しない
  • --stdin: stdin からファイル名を読み込む

eza への貢献方法

  • eza に貢献するには、まず行動規範に従う必要がある
  • 行動規範を理解した後、実際のハッキングに関する情報は CONTRIBUTING.md を参照できる

GN⁺ のまとめ

  • ezals のモダンな代替品で、より多くの機能とユーザーフレンドリーなインターフェースを提供
  • さまざまなカラーオプションや Git 状態表示などの便利な機能を含む
  • Windows、macOS、Linux で利用可能で、インストールも簡単
  • ls に似ているが、より多くのオプションを提供し、ファイル一覧作業をより効率的に行える
  • 類似の機能を提供するツールとして exa がある

1件のコメント

 
GN⁺ 2024-07-23
Hacker Newsのコメント
  • 「human readable dates」は不便。ディレクトリ一覧では日付と時刻を見たい

    • たとえば、「1 day ago」ではなく正確な時刻表示がほしい
    • 無限スクロールの結果かもしれない
  • lsdもあるが、ezaのほうが好み

    • モダンなコマンドラインツールのおすすめ
      • bat - ハイライト機能付きのcat
      • difftastic - より良いdiff
      • gdu - SSD向けのディスク容量アナライザー
      • zoxide - モダンなcd
      • fd - findの代替
      • rg - ripgrepgrep
      • fzf - ファジーファインダー
      • jless - マウスでの折りたたみ機能があるJSONビューア
      • dra - リリースアセットのダウンロードとインストール
      • lazygit - Git TUI
      • lazydocker - Docker TUI
      • yazi - 画像プレビュー付きのファイルマネージャー
      • zellij - より良いtmux / screen
      • starship - クロスシェルのプロンプト設定
  • GNU lsは保守されている

    • 最近のコミットがある(2024-06-24、2024-06-27)
    • GNU Coreutilsのメーリングリストも活発
  • fish shellに切り替えてからlsの使用が100%減った

    • Alt + lコマンドでディレクトリ内容を表示
    • シェル履歴の結果がよりすっきりする
  • 色を使ってファイルタイプを区別するターミナルツールには問題がある

    • 目に優しいターミナル背景を使っている
    • カラースキームが背景と衝突したり見づらかったりする
    • lsまたはlsの代替出力で色は不要
    • ls -AFCの出力で十分
  • GNUユーティリティの新しいバージョンがMITライセンスでビルドされる理由が気になる

  • READMEにezaexaのフォークだという言及がないのを奇妙に思う

  • qwertyキーボードではezaのタイピングがしづらい

    • lsは素早く打てるキーの組み合わせ
    • aliasを使うことはできるが、互換性の問題などで微妙
  • eza/exaの主な機能は派手な色ではなくgit統合

    • ファイル一覧で個々のファイルのgit状態を確認できる(無視、変更済みなど)
  • lsを使う人はほとんどいない

    • タブ補完で必要なファイルを列挙する
    • lsがもう保守されていないと主張する理由が気になる