簡介Linux中cp和mv搭配{,}在shell當中的用法_linux shell

來源:互聯網
上載者:User

經常會在部落格或者論壇看到類似下面的命令 大括弧擴充  Brace expansion  {     }  shell   作用

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

或者是

  mv resume{z,}.doc

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

{  } 並沒有什麼實際的含義,但是卻可以作為Brace expansion(大括弧擴充或叫做花括弧擴充)而經常用於產生各種組個。以下是翻譯自 GNU/BASH  man page  的內容:

    Brace expansion(大括弧擴充或叫做花括弧擴充) 是用來隨機產生字串組合的機制。這種機制類似於檔案的副檔名,但是並不需要存在響應的檔案。Brace expansion(大括弧擴充或叫做花括弧擴充)模式是一可選的preamble(前置字元),後面跟著一系列逗號分隔的字串,包含在一對花括弧中, 再後面是一個可選的postscript(列印程式設計語言)。preamble(前置字元)被添加到花括弧中的每個字串前面,postscript(列印程式設計語言)被附加到每個結果字串之後, 從左至右進行擴充。  花括弧擴充可以嵌套。擴充字元串的結果沒有排序;而是保留了從左至右的順序。

 

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

  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}

 

這樣逗號前面沒東西,那麼參數就保持原來的不變,逗號後面的照樣擴充。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.