如果文件名是 'Z',为什么 ls -Q 会输出 "Z\1"?

Why ls -Q give output as "Z\\1" if the file name is 'Z\1'?

$ touch "z"
$ ls -Q
"z\1"

如果文件名为“z”,为什么 "ls -Q" 输出 "z\1"

输出在 'z' 和“1”之间带有双斜杠。

-Q-Switch(还有 --quote-names)将引用名称。 --quoting-style-Switch 定义了这个引用是如何完成的。

来自 man page 的片段:

--quoting-style=WORD
use quoting style WORD for entry names: literal, locale, shell, shell-always, c, escape

这将导致以下结果:

  • ls --quoting-style=literal "z" => z
  • ls --quoting-style=locale "z" => ‘z\1’
  • ls --quoting-style=shell "z" => 'z'
  • ls --quoting-style=shell-always "z" => 'z'
  • ls --quoting-style=c "z" => "z\1"
  • ls --quoting-style=escape "z" => z\1

我不能告诉你默认值是多少。但它必须是其中之一 locale, c, escape