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