(*\:2) 中的星号、反斜杠、冒号和 2 是什么意思?

(*\:2) 中的星号、反斜杠、冒号和 2 是什么意思?

ls以下命令含义是什么?

ls -l *\:2,*T
  • ls= 列表
  • -l= 长(列表)
  • *T可能意味着T最后

但是那*\:2和逗号又怎么样呢?

答案1

*\:2,*T是要列出的文件的 glob 模式。要理解它,我们需要记住以下几点:

  • :必须在壳中逃脱,成为\:
  • 文件名很容易包含逗号

因此*\:2,*T将匹配一个名为TranscationNumber:2,EventType:XYT

编辑

从评论中,关于逃避:需求的必要性(或不必要性)有几句话:不是对于转义:符号而言,这绝对是必要的,但是 bash 本身在自动完成时会建议这样做。

答案2

列出与通配符模式匹配的所有文件*:2,*T

通配符*匹配任何字符(任意数量的所有可能字符),
:2,这些字符必须出现在文件/目录名称中。
冒号:是需要转义的特殊字符,因此格式为\:2,
文件/目录名称必须以 结尾T

匹配的文件名将是

:2,T
a:2,T
a:2,bT
abbY-$fafaf:2,<hskjhsgdfhjk>T

答案3

正如其他人所指出的,这将以长格式列出包含:2并以结尾的文件T

这看起来像是在 Maildir 文件夹中搜索已删除(丢弃)的文件。但是,为了稳健起见,它应该*在末尾再添加一个。可以添加字母顺序靠后的新标志,例如 Dovecot 在末尾添加了另一个带有文件大小的字段。

相关内容