Rust现代化文件管理工具eza的使用,高效替代ls命令并支持彩色输出与丰富元数据展示

Rust现代化文件管理工具eza的使用,高效替代ls命令并支持彩色输出与丰富元数据展示

eza是一个现代化的文件列表命令行工具,作为Unix和Linux系统中传统的ls命令的替代品,提供了更多功能和更好的默认设置。它使用颜色来区分文件类型和元数据,支持符号链接、扩展属性和Git状态显示,且体积小、速度快,仅为一个单一二进制文件。

eza的主要特点

eza相比传统ls命令的优势功能包括:

  • 修复了exa 2021引入的"The Grid Bug"
  • 支持超链接
  • 显示挂载点详情
  • 输出SELinux上下文
  • 显示Git仓库状态
  • 人类可读的相对日期
  • 多个安全修复
  • 支持明亮终端颜色
  • 可通过theme.yml配置文件自定义颜色和图标

安装eza

使用Nix安装

如果你已安装Nix并支持flake,可以尝试运行:

nix run github:eza-community/eza

要传递参数,例如:

nix run github:eza-community/eza -- -ol

常规安装

eza适用于Windows、macOS和Linux。具体安装方法请参考INSTALL.md文档。

常用命令行选项

显示选项

  • -1, --oneline: 每行显示一个条目
  • -G, --grid: 以网格形式显示条目(默认)
  • -l, --long: 显示扩展详情和属性
  • -R, --recurse: 递归显示目录内容
  • -T, --tree: 以树形结构递归显示目录
  • -x, --across: 横向排序网格
  • -F, --classify=(when):在文件名后显示类型指示器(always, auto, never)
  • --colo[u]r=(when):何时使用终端颜色(always, auto, never)
  • --icons=(when):何时显示图标(always, auto, never)

筛选选项

  • -a, --all: 显示隐藏文件和"点"文件
  • -d, --list-dirs: 像普通文件一样列出目录
  • -L, --level=(depth):限制递归深度
  • -r, --reverse: 反转排序顺序
  • -s, --sort=(field):按哪个字段排序
  • --group-directories-first: 将目录列在其他文件之前
  • -D, --only-dirs: 仅列出目录
  • -f, --only-files: 仅列出文件

长视图选项(与-l一起使用)

  • -b, --binary: 使用二进制前缀列出文件大小
  • -B, --bytes: 以字节列出文件大小,不带前缀
  • -g, --group: 列出每个文件的组
  • -h, --header: 为每列添加标题行
  • -H, --links: 列出每个文件的硬链接数
  • -i, --inode: 列出每个文件的inode号
  • -S, --blocksize: 显示文件系统块的大小
  • -@, --extended: 列出每个文件的扩展属性及其大小
  • --git: 列出每个文件的Git状态(如果被跟踪或被忽略)
  • --time-style: 如何格式化时间戳

自定义主题

eza支持通过theme.yml文件自定义所有现有的主题选项,包括为不同文件类型和扩展名指定不同的图标。环境变量设置的任何现有选项将继续工作并具有优先权。

示例主题文件位于docs/theme.yml,需要放在EZA_CONFIG_DIR环境变量指定的目录中,或默认放在$XDG_CONFIG_HOME/eza中。

示例使用

基本使用

# 列出当前目录内容(网格视图)
eza

# 长列表格式显示
eza -l

# 显示所有文件(包括隐藏文件)
eza -a

高级用法

# 递归列出目录内容并以树形显示
eza -T

# 按修改时间排序并显示Git状态
eza -l --git --sort=modified

# 显示挂载点详情(仅限Linux和MacOS)
eza -lM

# 使用自定义时间格式
eza -l --time-style=relative

完整示例

# 示例1:彩色网格视图显示当前目录内容
eza --color=always --icons=always

# 示例2:详细列表显示文件权限、大小、修改时间和Git状态
eza -l --git --time-style=long-iso

# 示例3:递归显示目录树形结构,限制深度为2
eza -T --level=2

# 示例4:仅显示目录并按大小排序
eza -D --sort=size

# 示例5:显示SELinux上下文和扩展属性
eza -lZ@

eza通过提供更丰富的功能和更友好的用户界面,成为传统ls命令的强大替代品,特别适合需要频繁查看文件系统信息的开发者和系统管理员使用。


1 回复

Rust现代化文件管理工具eza的使用指南

eza简介

eza是一个用Rust编写的现代化ls命令替代工具,它提供了更美观的输出、彩色显示、丰富的文件元数据以及更直观的目录列表展示方式。eza在保持与ls命令兼容的同时,添加了许多实用的新功能。

安装方法

Linux/macOS (使用包管理器)

# macOS (Homebrew)
brew install eza

# Arch Linux
sudo pacman -S eza

# Debian/Ubuntu
sudo apt install eza

# Fedora
sudo dnf install eza

使用Cargo安装

cargo install eza

基本使用

# 基本用法 (类似ls)
eza

# 显示所有文件(包括隐藏文件)
eza -a

# 长格式显示
eza -l

# 递归显示子目录
eza -R

特色功能

彩色输出和图标支持

# 启用彩色输出(默认已启用)
eza --color=always

# 显示文件类型图标(需要Nerd Font支持)
eza --icons

丰富的元数据显示

# 显示扩展属性
eza -l@

# 显示文件大小以可读格式(KB,MB,GB)
eza -lh

# 显示文件创建/修改/访问时间
eza -l --time-style=full-iso

树状视图

# 树状结构显示目录
eza --tree

# 限制树状显示深度
eza --tree --level=2

排序和过滤

# 按文件大小排序
eza -lS

# 按修改时间排序(最新在前)
eza -lsnew

# 只显示目录
eza -D

# 只显示特定扩展名的文件
eza '*.(rs|toml)'

配置别名

为了永久替代ls命令,可以在shell配置文件中添加别名:

# ~/.bashrc 或 ~/.zshrc
alias ls='eza --icons --color=always'
alias ll='eza -l --icons --color=always'
alias la='eza -a --icons --color=always'
alias l='eza -l --icons --color=always'
alias lt='eza --tree --icons --color=always'

示例输出对比

传统ls -l输出:

-rw-r--r-- 1 user group  1024 Jan 1 10:00 file.txt
drwxr-xr-x 2 user group  4096 Jan 1 10:00 dir

eza输出(带图标和颜色):

drwxr-xr-x user group 1 Jan 10:00  dir
.rw-r--r-- user group 1KB Jan 10:00  file.txt

完整示例

# 安装eza后,创建一个测试目录并生成一些文件
mkdir eza_demo && cd eza_demo
touch {1..3}.txt .hiddenfile
mkdir -p dir1/dir2
touch dir1/file{1..2}.rs dir1/dir2/config.toml

# 基本查看
eza

# 带图标显示所有文件(包括隐藏文件)
eza -a --icons

# 长格式显示并按修改时间排序
eza -lsnew --icons

# 显示树状结构(2级深度)
eza --tree --level=2 --icons

# 只显示.rs和.toml文件
eza '*.(rs|toml)' --icons

总结

eza通过以下特性提升了文件列表的查看体验:

  • 更美观的彩色输出
  • 文件类型图标支持
  • 更丰富的元数据显示
  • 树状视图展示
  • 智能的文件大小格式化
  • 与现有ls命令兼容

对于经常使用终端进行文件操作的用户,eza是一个值得尝试的现代化替代工具。

回到顶部