您好,登錄后才能下訂單哦!
這篇文章主要講解了“Linux中cp和mv搭配{,}在shell當中的用法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Linux中cp和mv搭配{,}在shell當中的用法”吧!
經常會在博客或者論壇看到類似下面的命令 大括號擴展 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}
這樣逗號前面沒東西,那么參數就保持原來的不變,逗號后面的照樣擴展。
感謝各位的閱讀,以上就是“Linux中cp和mv搭配{,}在shell當中的用法”的內容了,經過本文的學習后,相信大家對Linux中cp和mv搭配{,}在shell當中的用法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。