树的符号链接输出不明确

树的符号链接输出不明确

每当我使用命令行工具时,我都希望确保输出能够被明确解释。在我的另一台机器上,我编写了一个 shell 脚本,该脚本会查找位于特定路径下的所有符号链接,并将它们打印到控制台,使其看起来像"<Escaped Path To Symbolic Link>" \e[91m=>\e[0m "<Escaped Path To Target>"。该脚本解析了 ANSI 转义码;<Escaped Path To Symbolic Link>和分别是符号链接及其目标的路径,任何不可打印的字符都经过转义,以便它们在控制台上<Escaped Path To Target>显示为(其中是十六进制数字)。\xHHH

综上所述,没有任何歧义。如果符号链接或其目标路径包含=>,则它将与分隔符分隔开来,因为分隔符将显示为红色文本。如果任一路径包含 ANSI 转义代码,则转义字符将在控制台上显示为\e,从而消除可能存在除红色以外的任何字符的可能性=>。换行符将呈现为\n,双引号将显示为\"

我知道三种方法可以以tree某种方式进一步消除输出的歧义:

  1. -q将使tree不可打印的字符显示为?。它们对输出可能产生的任何影响都会被抵消。
  2. -C打开着色。如果与 结合使用-F,则附加字符将通过不同的颜色与它们所附加的名称区分开来。这样,名称以等号结尾的文件就可以与套接字区分开来。

使用这两个选项仍然会导致不清楚任何?已替换不可打印字符的字符代表什么字符,并且与实际上是文件或文件夹名称一部分的问号无法区分。如果->用于指示符号链接指向的序列位于路径中,则由于路径中的空格被转换为 ,因此它是可区分的\

如何使输出完全明确?

相关内容