无法让 ls 识别 LS_OPTIONS 或 LS_COLORS?

无法让 ls 识别 LS_OPTIONS 或 LS_COLORS?

尝试获取--color=auto其默认ls参数。

$  ls --version
ls (GNU coreutils) 8.21
$  echo $LS_COLORS
no=00:fi=00:di=00;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=00;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:
$  echo $LS_OPTIONS
--color=auto

不幸的是,当我运行时ls我仍然得到非彩色的输出(ls --color=auto手动运行会给我颜色)。

我如何提出--color=auto默认ls参数?

答案1

我想您可能认为 GREP_OPTIONS 受支持意味着 LS_OPTIONS 也受支持,如下所示: https://stackoverflow.com/questions/793483/unable-to-put-colors-for-ls-by-ls-options

但事实并非如此,所以你最好在 bashrc 或同等文件中执行如下操作:

alias ls='ls --color=auto'

答案2

参加这个聚会已经晚了三年多了,但我刚刚解决了一个类似的问题,并且有更多信息可以提供给未来的寻求者。

似乎虽然grep主动寻找GREP_OPTIONS,但ls并不寻找LS_OPTIONS。所以你必须做类似 的事情alias ls='ls $LS_OPTIONS '。你可以自己决定这是否值得做,而不是直接列出你想要的选项的别名。

(顺便说一句,如果有眼尖的人想知道为什么我在该别名值中有一个尾随空格,那是因为 bash(GNU bash,版本 4.3.42(1)-release)手册页的 ALIASES 部分中有这样一行:“如果别名值的最后一个字符是空格,则还会检查别名后面的下一个命令字是否进行别名扩展。”这对我来说似乎很方便,所以我在所有别名中都放了一个尾随空格。)

相关内容