来自ls命令的额外转义字符使生活变得困难

问题描述 投票:-1回答:1

我想发出一个简单的ls命令并将结果存储在一个文件中:

ls -ltr equ* > ffile

文件名显示附加了额外的转义字符。这些在一些实用程序(如vi)下明显显示,而在其他实用程序(如更多)之下根本不显示。例:

-rw------- 1 me 9607LPET  72680 Apr 10 12:00 ^[[0m^[[00mequ_00020.dat^[[0m
-rw------- 1 me 9607LPET  72680 Apr 10 12:00 ^[[00mequ_00021.dat^[[0m
-rw------- 1 me 9607LPET 356110 Apr 10 12:00 ^[[00mequ_00065.dat^[[0m
-rw------- 1 me 9607LPET  60253 Apr 10 12:00 ^[[00mequ_00067.dat^[[0m
-rw------- 1 me 9607LPET  83656 Apr 10 12:00 ^[[00mequ_00068.dat^[[0m

无论如何,几乎任何我可能用来处理这个文件列表的工具都会检测到这些字符。它们使得处理文件名变得非常困难。我怎么摆脱他们?他们首先在那里做什么?

编辑:这个问题被标记为另一个问题的副本,也涉及摆脱ls输出中的颜色。但是,我认为摆脱颜色是两个不同问题的单一解决方案。另一个问题首先是关于颜色。这个不是。用户可以解决我刚才遇到的确切问题,并且仍然不知道他应该在ls输出中查看涉及颜色的其他问题。我当然是其中一个用户。因此,我认为这不是另一个问题的正确重复,这个问题应该作为一个独特问题保持一个独特的问题,因为事实上它就是这个问题。

linux ls ansi-escape
1个回答
3
投票

这些是打开和关闭颜色的ANSI转义序列。尝试添加

--color=never

ls关闭着色。

通常,您应该使用--color=auto,它应该在输出不是终端时关闭颜色。

© www.soinside.com 2019 - 2024. All rights reserved.