萨伯·沃尔夫
在下面的命令将tar
所有的“点”文件和文件夹:
tar -zcvf dotfiles.tar.gz .??*
我熟悉正则表达式,但是我不懂如何解释.??*
。我执行ls .??*
并tree .??*
查看了列出的文件。为什么此正则表达式包含.
以例如开头的文件夹中的所有文件?
jw013
球不是正则表达式。通常,shell会尝试解释您在命令行中键入的任何内容,而这些内容不会被引用为glob。Shell根本不需要支持正则表达式(尽管实际上许多更现代的=~
表达式都支持,例如,bash
[[
构造中的regex match运算符)。
这.??*
是一个问题。它与任何以文字点开头的文件名相匹配.
,后跟任意两个(不一定相同)字符??
,后跟等价的正则表达式[^/]*
,即0或多个not的字符/
。
有关shell路径名扩展的完整详细信息(“ globbing”的全名),请参见POSIX规范。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句