国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Linux Shell > 正文

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

2020-07-27 19:05:54
字體:
來源:轉載
供稿:網友

經常會在博客或者論壇看到類似下面的命令 大括號擴展  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}

 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永川市| 沈丘县| 安新县| 车致| 万宁市| 长白| 余干县| 栾川县| 新乡县| 两当县| 乌苏市| 偃师市| 古交市| 丹巴县| 巴中市| 昌邑市| 石楼县| 武功县| 静安区| 平武县| 亚东县| 郴州市| 屏东市| 泽州县| 商河县| 丰镇市| 邹平县| 阳江市| 江津市| 长宁区| 溧阳市| 碌曲县| 孙吴县| 彰化县| 烟台市| 长沙县| 沈阳市| 永宁县| 海宁市| 锡林郭勒盟| 镇赉县|