主頁 > 知識庫 > 簡介Linux中cp和mv搭配{,}在shell當(dāng)中的用法

簡介Linux中cp和mv搭配{,}在shell當(dāng)中的用法

熱門標(biāo)簽:呼叫中心市場需求 百度競價排名 鐵路電話系統(tǒng) 地方門戶網(wǎng)站 服務(wù)外包 Linux服務(wù)器 AI電銷 網(wǎng)站排名優(yōu)化

經(jīng)常會在博客或者論壇看到類似下面的命令 大括號擴(kuò)展  Brace expansion  {     }  shell   作用

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

或者是

  mv resume{z,}.doc

那么,在uinx / linux  shell命令中是什么意思?起什么作用呢?

{  } 并沒有什么實(shí)際的含義,但是卻可以作為Brace expansion(大括號擴(kuò)展或叫做花括號擴(kuò)展)而經(jīng)常用于產(chǎn)生各種組個。以下是翻譯自 GNU/BASH  man page  的內(nèi)容:

    Brace expansion(大括號擴(kuò)展或叫做花括號擴(kuò)展) 是用來隨機(jī)產(chǎn)生字符串組合的機(jī)制。這種機(jī)制類似于文件的擴(kuò)展名,但是并不需要存在響應(yīng)的文件。Brace expansion(大括號擴(kuò)展或叫做花括號擴(kuò)展)模式是一可選的preamble(前導(dǎo)字符),后面跟著一系列逗號分隔的字符串,包含在一對花括號中, 再后面是一個可選的postscript(打印編程語言)。preamble(前導(dǎo)字符)被添加到花括號中的每個字符串前面,postscript(打印編程語言)被附加到每個結(jié)果字符串之后, 從左到右進(jìn)行擴(kuò)展。  花括號擴(kuò)展可以嵌套。擴(kuò)展字符串的結(jié)果沒有排序;而是保留了從左到右的順序。

 

1.如,在終端中輸入下面命令:

  echo foo{1,2,3}.txt

輸出如下:

foo1.txt foo2.txt foo3.txt

 

2.也可以使用下面附加的實(shí)例,去在命令中“創(chuàng)建”一個參數(shù),以節(jié)省輸入的時間,提高工作效率:
    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(大括號擴(kuò)展或叫做花括號擴(kuò)展)來復(fù)制,重命名文件,或者是備份文件,還可以是創(chuàng)建目錄等。在下面這個習(xí)慣性使用的的例子中,將   file1.txt  備份為  file2.txt.bak  ,輸入:

cp  -v file1.txt file1.txt.bak

 

如果使用Brace expansion,節(jié)省時間,則輸入:

cp  -v  file1.txt{,.bak}

 

輸出如下:

file1.txt -> file1.txt.bak

更多大括號擴(kuò)展實(shí)例如下:

4. 如果我們執(zhí)行:

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

 

這兩個 /etc/apt/sources 部分相同,為了少輸入兩次/etc/apt/sources ,大括號擴(kuò)展參數(shù)。還有平時重命名,備份文件,創(chuàng)建鏈接時候,都可以使用大括號擴(kuò)展參數(shù)的方法提高效率。

大括號擴(kuò)展,即大括號包圍的,用逗號隔開的參數(shù)會擴(kuò)展為獨(dú)立的多個參數(shù)。

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

 

Shell 在解釋時會自動將后面的參數(shù)擴(kuò)展成兩個,就變成了和上面一樣的完整命令。

當(dāng)然,還可更簡單,將   list  也考慮進(jìn)去,在逗號前什么都不寫,如下:

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

 

這樣逗號前面沒東西,那么參數(shù)就保持原來的不變,逗號后面的照樣擴(kuò)展。

您可能感興趣的文章:
  • Linux移動文件與目錄-mv命令的10個實(shí)用例子
  • 一個簡單的linux命令 mv
  • 詳解vmvare下安裝linux RedHat圖解(超詳細(xì)篇)
  • linux指令man page之rm,mv詳解
  • Linux中mv命令的高級用法示例

標(biāo)簽:崇左 仙桃 湖南 黃山 銅川 蘭州 衡水 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《簡介Linux中cp和mv搭配{,}在shell當(dāng)中的用法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266