资讯动态

lsd(LSDeluxe)命令完整参考:选项、参数、环境变量与配置实战指南

发布时间:2026/9/21 15:31:47 来源:尧图企业网站定制
lsdLSDeluxe命令完整参考选项、参数、环境变量与配置实战指南【免费下载链接】lsdThe next gen ls command项目地址: https://gitcode.com/gh_mirrors/ls/lsdlsd 是一款以 Rust 重写 GNUls的现代化目录列表工具为传统ls增加了丰富的色彩、图标、树形视图与更多格式化能力仓库中的 doc/lsd.md 即其标准手册man page源文档。本文以该手册为骨架结合 README.md、src/app.rs 中的 CLI 定义、src/flags.rs 的标志位解析逻辑以及 doc/samples 目录下的真实配置样例为你系统讲解 lsd 的全部命令行选项、位置参数、环境变量与配置文件机制读完后你将能够完全掌控 lsd 的显示、排序与主题定制。一、命令概览名称、语法与定位名称NAMElsd即 LSDeluxe。语法SYNOPSISlsd [FLAGS] [OPTIONS] [--] [FILE]...定位DESCRIPTIONlsd 是一个带大量漂亮颜色pretty colours并内置若干增强能力的ls命令用于丰富和强化目录列表体验。语法中的[--]用于显式终止选项解析之后的所有内容都按文件名处理[FILE]...表示可同时传入多个文件或目录默认值为.当前目录。这一点在 src/app.rs 中有直接对应实现inputs: VecPathBuf字段的默认值即为.。从 src/main.rs 的主入口可以看到完整运行链路Cli::parse_from解析命令行 → 按--ignore-config/--config-file加载配置 →Flags::configure_from合并 CLI 与配置文件生成最终标志位 →Core::new(flags).run(inputs)执行目录遍历与渲染。二、FLAGS 类选项显示行为开关这类选项只改变行为、不带值对应 src/app.rs 中bool类型的#[arg]定义。2.1 条目显示范围选项作用-a,--all不忽略以.开头的条目即包含隐藏文件-A,--almost-all列出除隐含的.与..之外的所有条目两个选项可叠加使用lsd -la即同时开启长格式与隐藏文件显示。在 src/app.rs 中all通过overrides_with almost_all声明了二者互斥覆盖关系。2.2 符号链接与目录处理选项作用-L,--dereference显示符号链接所指向目标文件的信息而非链接本身-d,--directory-only只显示目录自身而不进入其内容与--tree联用时递归生效--no-symlink不显示符号链接的指向目标注意-d与-Rrecursive在源码中通过conflicts_with recursive声明为互斥src/app.rs。2.3 布局与递归选项作用-l,--long以表格形式展示扩展元数据权限、属主、大小、日期等-1,--oneline每行仅显示一个条目-R,--recursive递归进入所有子目录--tree递归进入目录并以树形结构展示结果--header显示块列头即各列的标题行-R与--tree同样在源码中通过conflicts_with声明互斥src/app.rs二者不能同时使用。2.4 元数据与信息增强选项作用-i,--inode显示每个文件的索引节点号index number-F,--classify在文件名末尾追加指示符可选* / |之一分别对应可执行、目录、套接字、符号链接、管道等--total-size显示目录的总大小-Z,--context显示 SELinux 或 SMACK 安全上下文标签--git显示 git 状态目录的 git 状态是其包含文件状态的递归汇总其中--git通常配合-l使用在 src/app.rs 的注释中明确写着 Only when used with --long option。2.5 兼容与信息类选项作用--classic启用经典模式无颜色、无图标输出尽可能接近传统ls-h,--human-readable仅为了与ls兼容而存在当前版本默认即开启无需手动指定-N,--literal文件名不加引号原样打印默认对特殊字符文件名会加引号--help打印帮助信息-V,--version打印版本信息--classic是一个全局开关根据 config-sample.yaml 中的说明它会一次性把color.when强制为never、sorting.dir-grouping强制为none、date强制为date、icons.when强制为never是追求ls向后兼容的最快方式。三、OPTIONS 类选项带值的精确控制这类选项需要携带参数值涵盖显示格式、排序、主题与筛选。3.1 排序相关选项作用-X,--extensionsort按文件扩展名排序-S,--sizesort按文件大小排序-t,--timesort按修改时间排序-v,--versionsort对文本中的数字进行自然版本号排序--sort WORD按指定关键字排序WORD可选size、time、version、extension、git-U,--no-sort不排序按目录原始顺序列出-r,--reverse反转排序顺序--group-dirs mode目录与文件的排序位置mode可选none默认、first目录在前、last目录在后--group-directories-first目录排在文件之前等价于--group-dirsfirst从源码看快捷排序开关-X/-S/-t/-v与--sort之间存在覆盖关系--sort通过overrides_with_all覆盖全部快捷开关而-U又覆盖--sort与所有快捷开关src/app.rs。也就是说一旦指定-U其他排序参数均被忽略。3.2 显示格式与列控制选项作用--blocks blocks...指定长格式/树形布局下显示的列及其顺序可选值permission、user、group、size、date、name、inode、git--date date...日期列格式可选值date默认、locale、relative、日期格式字符串--permission mode权限列格式可选值rwxLinux 默认、octal、attributesWindows 默认、disable--size mode大小列格式可选值default默认人类可读、short短格式、bytes原始字节数--truncate-owner-after num用户名/组名超过指定字符数时截断--truncate-owner-marker str截断后追加的标记字符串需要特别说明--date的自定义格式以开头后接 strftime 风格字符串例如--date %d %b %y %X会输出类似17 Jun 21 20:14:55的日期。该值在 src/app.rs 中经过validate_date_argument校验且在 src/flags/date.rs 中逐字符验证格式说明符支持%Y、%m、%d、%H:%M:%S、%.3f毫秒等无效格式会直接报错拒绝。此外 src/flags/date.rs 还支持从环境变量TIME_STYLE读取日期样式full-iso、long-iso、iso、locale或格式均可用。3.3 颜色、图标与超链接选项作用--color mode何时使用终端颜色可选值always、auto默认、never--icon mode何时打印图标可选值always、auto默认、never--icon-theme theme图标主题可选值fancy默认Nerd Font 字形、unicodeUnicode emoji--hyperlink mode是否给文件名附加超链接可选值always、auto、never默认图标的默认字形集合定义在 src/theme/icon.rs 中如目录、文件、可执行文件而unicode主题则定义于 src/theme/icon.rs如目录、文件。注意auto模式意味着仅在检测到输出为终端而非管道/重定向时才启用颜色与图标。3.4 过滤与配置来源选项作用-I,--ignore-glob pattern...忽略名称匹配 glob 模式的文件/目录可重复指定多个模式--ignore-config忽略配置文件完全使用内置默认值--config-file path从自定义路径加载配置文件--depth num递归时到达指定深度后停止深入--ignore-config在 src/main.rs 中实现为直接使用Config::with_none()所有配置项均为 None即全部回落到内置默认值而--config-file则强制从指定路径解析 YAML。四、ARGS位置参数参数说明FILE...要列出的文件或目录默认值为.当前目录可传多个该参数在 src/app.rs 中定义为VecPathBuf支持任意数量与混合路径。五、实战示例从入门到组合技巧手册doc/lsd.md给出的三个基础示例命令效果lsd列出当前目录lsd /etc列出/etc目录内容lsd -la列出当前目录全部内容含.开头的文件与当前目录自身条目并以长格式展示在此基础上结合 README.md 中的别名建议可以组合出更高效的日常命令alias lslsd # 完全替代 ls alias llsd -l # 长格式 alias lalsd -a # 显示隐藏文件 alias llalsd -la # 长格式 隐藏文件 alias ltlsd --tree # 树形视图更高级的组合示例lsd -la --group-dirsfirst # 目录置顶 隐藏文件 长格式 lsd --tree --depth 3 # 树形结构最深 3 层 lsd -l --git # 长格式并显示 git 状态 lsd -l --sort time --reverse # 按修改时间倒序排列 lsd --date relative -l # 长格式 相对日期如 2 hours ago lsd -S --total-size # 按大小排序并显示目录总大小 lsd -I *.log -I node_modules # 忽略日志文件与 node_modules 目录 lsd -l --blocks permission,size,name # 只显示权限、大小、名称三列需要注意各选项的组合边界-R与--tree互斥-d与-R互斥-U会覆盖其他排序选项。六、ENVIRONMENT环境变量解析6.1LS_COLORS用于决定文件名显示颜色语义遵循dir_colors规范。该变量是 GNUls生态的通用颜色方案lsd 同样读取它来定制文件类型的颜色doc/colors.md 中说明You can customize filetype colors usingLS_COLORS。文件类型颜色与主题颜色是两套体系LS_COLORS控制文件类型配色其余颜色通过colors.yaml主题文件控制。6.2XDG_CONFIG_HOME用于定位可选配置文件。如果设置了XDG_CONFIG_HOME则使用$XDG_CONFIG_HOME/lsd/config.yaml否则使用$HOME/.config/lsd/config.yaml。在 src/config_file.rs 中配置目录查找顺序依次为$HOME/.config/lsd、dirs::config_dir()对应的目录、XDG Base Directory 规范目录并且同时兼容config.yaml与config.yml两种扩展名src/config_file.rs。6.3SHELL_COMPLETIONS_DIR或OUT_DIR用于指定 shell 补全文件的生成目录。二者均未设置时不生成补全文件目标目录不存在时会自动创建。这是构建期构建脚本生成补全相关的变量。七、配置文件的纵深理解CLI 与 YAML 的优先级手册未展开、但对实战至关重要的配置机制补充如下lsd 支持三类配置文件均位于上述配置目录中README.mdconfig.yaml— 主配置完整样例见 doc/samples/config-sample.yamlcolors.yaml— 颜色主题完整样例见 doc/samples/colors-sample.yamlicons.yaml— 图标覆盖完整样例见 doc/samples/icons-sample.yaml三者独立生效例如只放icons.yaml即可仅定制图标无需其他两个文件。配置目录内的默认config.yaml内容即 src/config_file.rs 中内嵌的DEFAULT_CONFIG常量命令行选项--generate-config可将该默认配置直接打印到标准输出方便复制到配置目录后修改。取值优先级定义在 src/flags.rs 的Configurabletrait 中从高到低为命令行参数from_cli环境变量from_environment如TIME_STYLE配置文件from_config内置默认值Default::default()这意味着命令行参数始终压过配置文件而配置解析失败时如 src/config_file.rs 所示会在 stderr 打印 Configuration file ... format error 并回落到默认值。config.yaml的核心配置节包括classic经典模式总开关、blocks列顺序、color.when/theme、date、dereference、displayall/almost-all/directory-only、icons.when/theme/separator、ignore-globs、indicators、layoutgrid/tree/oneline、recursion.enabled/depth、size、permission、sorting.column/reverse/dir-grouping、no-symlink、total-size、hyperlink、symlink-arrow如⇒、header、literal、truncate-owner.after/marker。注意其中的icons.separator可解决个别终端模拟器如 Konsole下文件名首字符被裁切的问题将分隔符改为两个不可见字符即可。colors.yaml用于定义用户/组、权限、日期、大小、inode、链接、树形边线与 git 状态等元素的颜色支持 256 色调色板数字与dark_green、dark_red等具名颜色。icons.yaml则支持三种覆盖维度name按完整文件名、extension按扩展名、filetype按文件类型如dir、file、pipe、socket、executable、symlink-dir等用户自定义条目会与 src/theme/icon.rs 中的默认图标表合并Nerd Font 字形与 Unicode emoji 均可直接使用。八、常见问题速查图标不显示先执行echo $\uf115验证终端能否渲染目录图标字形若显示为方框或问号说明字体缺少对应字形需要安装 Nerd Font 补丁字体并将终端字体切换为该字体README.md。首字符被裁切属于个别终端模拟器如 Konsole的已知问题可先运行lsd --icon never --ignore-config验证是否字体导致也可通过icons.separator配置规避。输出出现 字符说明文件名包含非法 UTF-8 字节lsd 会用UFFFD REPLACEMENT CHARACTER表示属正常行为。图标显示错乱Nerd Fonts v3.0 调整了 Material Design Icons 码点建议使用 Nerd Fonts v2.3.0 及以上版本补丁的字体。Windows 自定义颜色不生效检查系统环境变量LS_COLORS是否缺失需在 Windows 上手动设置该变量。综上所述lsd的手册虽短但每个选项背后都有清晰的源码实现与可验证的配置样例支撑。无论是追求开箱即用的多彩目录浏览还是希望通过 config.yaml、colors.yaml、icons.yaml 与LS_COLORS打造完全个人化的终端体验本文列出的选项矩阵与优先级规则都足以让你精准控制 lsd 的每一个输出细节。【免费下载链接】lsdThe next gen ls command项目地址: https://gitcode.com/gh_mirrors/ls/lsd创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价