从man ls:
With --color=auto,
ls emits color codes only when standard output is connected to a terminal.
Run Code Online (Sandbox Code Playgroud)
只是出于好奇。当标准输出未连接到终端时,如果我发出颜色会有什么影响?
因为发射颜色需要额外的计算,所以如果标准输出没有连接到终端,我们就不需要它并且可以节省一些计算?
我现在明白了。
意味着会输出一些描述颜色color codes的ls --color=always额外文本,通常终端会吃掉这些文本。
但是,当 时ls --color=always > test.txt,描述颜色的附加文本将被保留并保存。
尝试ls --color=always > file1.txt打开ls --color=auto > file2.txt这两个文件,例如使用nano,您可以看到差异。