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是一个值得尝试的现代化替代工具。