ls 权限颜色

ls 权限颜色

有没有办法控制 ls 的颜色输出以突出显示文件的特定权限? (例如权限)。

在此输入图像描述

有什么选项LS_COLORS可以做到这一点吗? (上图来自 Emacs 24.1 上的 Dired+,而不是来自 的输出ls

答案1

你可以随时把ls 类固醇实现文件权限的着色效果。

答案2

我刚刚尝试过,这实际上可以通过一个名为 Ruby 的小程序实现阿科克(任意命令输出着色器)。它可用于截取任何终端程序的输出(彩色输出并且top特别gcc整洁),并根据用户指定的正则表达式规则文件对它们进行着色。设置起来需要一些工作,并且您必须定义规则,但这已经是最灵活的了。我能够成功添加一条规则来为世界上可写的文件着色。

如果您走这条路,需要注意以下几点:

  1. 该项目似乎不在任何发行版中 - 您必须从主页手动安装。
  2. 您需要修补项目主页上的代码才能使用现代版本的 Ruby。你可以找到补丁这里(我已联系作者让他知道该补丁,也许他会更新他的版本)。
  3. 在 的情况下ls,拦截 会acoc丢弃现有的LS_COLORS,因此您必须以正则表达式的形式提供所需的所有规则,包括过去使用 突出显示的内容LS_COLORS

答案3

如果dircolors --print-database列出所有可能的选项,则无法在长输出中突出显示权限。

您仍然可以使用 grep:

ls -l | grep --color -P "(?<=[r-])w"

它将突出显示w权限部分中的所有 s;它还会突出显示文件名中ws 后面的rs 和s,唉。-

答案4

https://altbox.dev/还提到lsdexa其中(请参阅 user13742 的答案)作为完成此任务ls++的替代。ls两者都是用 Rust 编写的,并提供预编译的二进制文件。我自己还没有尝试过,我只是在研究课程讲师的工具链。

相关内容