stat --format %N 引号

stat --format %N 引号

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

14.04(coreutils 8.21-1ubuntu5.1):

$ stat --format %N test.txt
‘test.txt’

16.04(coreutils 8.25-2ubuntu2):

$ stat --format %N test.txt
'test.txt'

为什么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.

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

答案1

GNUstat文档

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

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

...

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

...

' locale'
像 C 字符串文字一样引用字符串,但使用适合区域设置的引号,并 在默认 C 区域设置中引用'like this'而不是引用。"like this"这在许多显示器上看起来更好。

stat在 8.21 中没有使用此变量(已进行更改去年11月)。 14.04 的输出看起来像使用了QUOTING_STYLE=locale.想必这就是当时的(隐式)默认。

相关内容