stat --format %N 引号

Set*_* II 3 ubuntu stat quoting

我在两个不同版本的 Ubuntu 上使用了 stat,它打印了不同类型的引号。

14.04 (coreutils 8.21-1ubuntu5.1):

$ stat --format %N test.txt
‘test.txt’
Run Code Online (Sandbox Code Playgroud)

16.04 (coreutils 8.25-2ubuntu2):

$ stat --format %N test.txt
'test.txt'
Run Code Online (Sandbox Code Playgroud)

为什么stat在旧版本中使用这种不常见的引用样式,有没有办法告诉stat它应该使用哪种类型的引用?

编辑

我知道在 8.26 版中为 stat 引入了引用样式(https://savannah.gnu.org/forum/forum.php?forum_id=8745):

  stat --format=%N for quoting file names now honors the
  same QUOTING_STYLE environment variable values as ls.
Run Code Online (Sandbox Code Playgroud)

但是在此更改之前,版本之间应该有一致的行为,还是有其他我不知道的更改?

mur*_*uru 5

GNUstat文档

' %N' 格式可以用环境变量设置 QUOTING_STYLE。如果未设置该环境变量,则默认值为‘shell-escape'. 有效的引用样式是:

' literal'
按原样输出字符串;这与-Nor--literal选项相同。

...

' shell-escape'
类似于 ' shell',但也使用$''适用于大多数 shell的 POSIX 建议的 ' ' 语法引用不可打印的字符。

...

' locale'
像 C 字符串文字一样引用字符串,除了使用适合语言环境的周围引号,并引用 'like this'而不是"like this"在默认的 C 语言环境中。这在许多显示器上看起来更好。

stat在 8.21 中没有使用这个变量(这个变化是在去年 11 月进行的)。14.04 的输出看起来像是使用了QUOTING_STYLE=locale. 大概那是当时的(隐式)默认值。