ls --color=auto,为什么他们提供这样的选项,因为默认情况下有 --color=always ?

ls --color=auto,为什么他们提供这样的选项,因为默认情况下有 --color=always ?

man ls

With --color=auto,
       ls emits color codes only when standard output is connected to a terminal.

只是出于好奇。当标准输出未连接到终端时,如果我发出颜色会有什么影响?

因为发射颜色需要额外的计算,所以如果标准输出没有连接到终端,我们就不需要它并且可以节省一些计算?

答案1

我现在明白了。

意味着color codesls --color=always输出一些描述颜色的额外文本,通常终端会吃掉这些文本。

但是,当 时ls --color=always > test.txt,描述颜色的附加文本将被保留并保存。

尝试ls --color=always > file1.txt打开ls --color=auto > file2.txt这两个文件,例如使用nano,您可以看到差异。

相关内容