如何获得ls --color = auto在Mac OS X上运行?


Answers:


78

ls实际上是与Bash分开的。Mac OS X具有的BSD版本ls,该版本需要-G在命令行上(或CLICOLOR可能LSCOLORS在环境中)使用。

请参阅man ls以获取更多信息。


5
同上。我已经alias ls='ls -G'将.bashrc设置在Snow Leopard上。
ayaz 2010年

由于某些原因,CLICOLOR=Y停止在Mac上运行。alias ls='ls -G'将迫使ls着色。我仅针对交互式终端定义此内容。
DKroot

31

打开终端窗口并输入:

alias ls='ls -G'

然后击中Enter并完成!


10

使用自制软件

brew install coreutils

请注意,这将g在所有命令(例如glsfor ls)前面添加前缀。它提供了一个源文件选项,该文件将自动为您别名。

我不确定是否可以直接安装它们而不必执行整个别名操作,因此可以在已安装的MacPorts 中执行此操作


1
输出说:如果你真的需要使用这些命令与他们的正常的名字,你可以...为什么它强调真的?不利之处是什么?
z0r

而且您从未将页面存档在archive.org上,现在上一段中的链接不见了
barlop

5

GNU和* BSD / darwin ls的兼容性

〜/ .profile

#for *BSD/darwin
export CLICOLOR=1

ls --color=auto &> /dev/null && alias ls='ls --color=auto' ||

〜/ .bashrc(我不记得Linux上的bash是否总是读取〜/ .profile,但我的ARCH上的zsh却不是)

[[ -f $HOME/.profile ]] && source $HOME/.profile

6
你能解释一下这段代码吗?
bwDraco

1
为* BSD和Darwin系统设置CLICOLOR环境变量-如果设置了ls,可能其他工具可以使用彩色,但是GNU ls(对于Linux)将忽略它。如果“ ls --color = auto”不会失败(退出状态= 0)-我们有ls的GNU版本,并且使用别名以交互方式绘制颜色代码,如果失败-那么由于CLICOLOR,我们不需要别名变量。如果出现故障或没问题,“&> / dev / null”只是不显示stderr和stdout。适用于我的linux和osx。(osx和freebsd上的ps bash不会读取.bashrc,因此将其放在.profile中。已经对其进行了修复)。
维克多·加夫罗

2

您需要安装的备用版本ls。在Linux中通常使用的一个来自GNU coreutils项目。

您可以从macportsfinkhomebrew进行构建和安装。


4
我认为这太过分了。如果ls的现有版本对同一功能的支持略有不同,则无需安装的单独版本ls
ayaz 2010年

好点子。再说一次,彩色ls从来不是我的口味。alias ls='ls -F'
道格·哈里斯

alias ls='ls -FG'-两全其美!
mipadi 2010年

1
我使用自制软件来执行此操作。如果您同时使用Mac和* nix计算机,并且希望您的终端看起来相同,这并不过分,这使您可以在所有计算机上使用相同的配置文件。它是作为gls原始版本安装的,并且不会取代原始版本,因此实际上没有任何缺点。
senderle 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.