脚本专栏 
首页 > 脚本专栏 > 浏览文章

简介Linux中cp和mv搭配{,}在shell当中的用法

(编辑:jimmy 日期: 2025/2/25 浏览:3 次 )

经常会在博客或者论坛看到类似下面的命令 大括号扩展  Brace expansion  {     }  shell   作用

  cp /etc/httpd/httpd.{,.bakup}

或者是

  mv resume{z,}.doc

那么,在uinx / linux  shell命令中是什么意思"htmlcode">

  echo foo{1,2,3}.txt

输出如下:

foo1.txt foo2.txt foo3.txt

 

2.也可以使用下面附加的实例,去在命令中“创建”一个参数,以节省输入的时间,提高工作效率:
    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}

 

3.可以使用Brace expansion(大括号扩展或叫做花括号扩展)来复制,重命名文件,或者是备份文件,还可以是创建目录等。在下面这个习惯性使用的的例子中,将   file1.txt  备份为  file2.txt.bak  ,输入:

cp  -v file1.txt file1.txt.bak

 

如果使用Brace expansion,节省时间,则输入:

cp  -v  file1.txt{,.bak}

 

输出如下:

file1.txt -> file1.txt.bak

更多大括号扩展实例如下:

4. 如果我们执行:

$ cp /etc/apt/sources.list     /etc/apt/sources.list.bak

 

这两个 /etc/apt/sources 部分相同,为了少输入两次/etc/apt/sources ,大括号扩展参数。还有平时重命名,备份文件,创建链接时候,都可以使用大括号扩展参数的方法提高效率。

大括号扩展,即大括号包围的,用逗号隔开的参数会扩展为独立的多个参数。

$ cp /etc/apt/sources.{list,list.bak}

 

Shell 在解释时会自动将后面的参数扩展成两个,就变成了和上面一样的完整命令。

当然,还可更简单,将   list  也考虑进去,在逗号前什么都不写,如下:

$ cp /etc/apt/sources.list{,.bak}

 

这样逗号前面没东西,那么参数就保持原来的不变,逗号后面的照样扩展。

上一篇:一些Linux Shell中的权限相关知识总结
下一篇:编写Bash Shell通过gnuplot绘制系统性能数据图的方法
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?