说明:{,}在cp或mv Bash Shell命令中
时间:2020-01-09 14:16:22 来源:igfitidea点击:
在Linux和Unix shell中命令cp /etc/httpd/httpd.{,.bakup}
OR mv resume{z,}.doc
中,{,}
的作用是什么命令?
{}
是括号扩展,通常用于生成组合。
括号扩展是一种可以生成任意字符串的机制。
此机制类似于文件名扩展,但是生成的文件名不必存在。
花括号扩展的模式采用可选的前导形式,其后是一系列用逗号分隔的字符串或一对花括号之间的顺序表达式,然后是可选的后记。
前缀在花括号中包含的每个字符串之前加上前缀,然后将后记追加到每个结果字符串之后,从左向右扩展。
cp或mv Bash Shell命令中的{,}
打开终端并输入以下命令:
echo foo{1,2,3}.txt
输出示例:
foo1.txt foo2.txt foo3.txt
尝试使用以下追加示例为命令创建参数并节省执行时间:
echo file.txt{,.bak} echo file-{a..d}.txt echo mkdir -p /apache-jail/{usr,bin,lib64,dev} echo cp httpd.conf{,.backup} echo mv delta.{txt,doc}
例子
您可以使用花括号扩展来复制文件,重命名/备份文件或创建目录。
在这个传统示例中,将名为file1.txt的文件备份到file1.txt.bak,执行:
cp -v file1.txt file1.txt.bak
使用cp命令时,可以通过大括号扩展来节省时间,如下所示:
cp -v file1.txt{,.bak}
输出示例:
file1.txt -> file1.txt.bak
更多括号扩展示例
要列出Linux上"下载"和"图片"文件夹中的所有pdf和png文件?
可以执行:
ls -l ~/{Downloads,Pictures}/*.{pdf,png}
Brace扩展可能嵌套在Linux和Unix系统上。
例如:
echo a{1,2,3}b echo a{1,2}{b,c} echo 'Hi '{Wends,Marlena,Hyman,Raj}$', let\'s be friends!\n' sudo chown www:data /wwwdata/{images/{old,new},lib/{how_to?.?*,old_html}}
整合在一起
让我们使用bash for loop通过apt命令或yum命令更新系统:
## update all CentOS/ RHEL 7.x boxes named ## for server in aws-{prod,backup-prod}-{db,www}-0{1..4} do ssh -t Hyman@${server} sudo -- sh -c 'yum update' done