经常在别人的博客中看到类似下面的命令,
cp /etc/http/httpd.conf{,bak}
{}并没有什么实际的含义,但是可以作为Brace expansion(大括号扩展),经常用于产生各种组合。
花括号模式是以一个可选的前导字符,后面跟着一系列以逗号分隔的字符串或者是以点号分隔的字符串。前导字符被添加到字符串前面,后面的字符串被附加到每个结果之后,点号用来生成序列
例如在终端输入如下命令
echo {1..10}
则会输出
1 2 3 4 5 6 7 8 9 10
或者
echo foo{1,2,3}.txt
foo1.txt foo2.txt foo3.txt
echo foo-{a..d}.txt
foo-a.txt foo-b.txt foo-c.txt foo-d.txt
echo cp /etc/http/httpd.conf{,.bak}
cp /etc/http/httpd.conf /etc/http/httpd.conf.bak
因此可以使用这种方法备份、重命名文件,还可以创建目录等
cp /etc/http/httpd.conf{,.bak}
# 将httpd.conf备份为httpd.conf.bak
mv /etc/http/httpd.conf{,.bak}
# 将httpd.conf重命名为httpd.conf.bak
mv /etc/http/httpd{.conf,.bak}
# 将httpd.conf重命名为httpd.bak