首先,如果可以通过网络搜索回答这个问题,我很抱歉,但我找不到任何内容。
cat命令中有一些语法我已经看过"重复"文件。
cat file{,}
相当于调用
cat file file
此外,
cat file{,}{,}{,}{,}
重复file
不是四次,而是重复16次。
另外,
cat file{,,}
重复file
3次。
我想更多地了解这个语法。这叫什么?它是内置于cat还是shell功能?这个语法有更多的功能吗?
答案 0 :(得分:4)
您所指的语法称为brace expansion。
{,,}
语法通常用于重复单词。话说:
echo foo{,,}
会产生
foo foo foo
当您组合大括号扩展时,它等同于嵌套那些:
echo foo{,}{,}{,}
等同来说
echo foo\ foo{,}{,}
和
echo foo\ foo\ foo\ foo{,}
并制作
foo foo foo foo foo foo foo foo
基本上,在给定字符串之后的 n 对{,}
将生成字符串2 n 次。
除了上面提到的链接,您还可以了解大括号扩展here。
答案 1 :(得分:4)
此功能称为brace expansion。
通常,您可以编写file{1,2,3}
并在运行命令之前将bash扩展为file1 file2 file3
。
如果你写
mkdir foo{1,2,3}{a,b}
它将等同于
mkdir foo1a foo1b foo2a foo2b foo3a foo3b
并将创建这6个目录。
在你的情况下({,}
)你没有添加任何东西,因此两次得到相同的单词。