阿舍是最近才知道這個 {} 符號在 Shell 裡的用途哩 ! 原來,Shell 程式會自動把 {} 符號外的字串和 {} 符號會併後產生成多個字串,舉例來說,下面這行指令就可以自動產生二個字串,但是,只要在 {} 符號內輸入有變化的部份就可以了。
$ echo /var/www/arthurtoday.com/index.{html,html.BAK}
/var/www/arthurtoday.com/index.html /var/www/arthurtoday.com/index.html.BAK
有注意到嗎 ? 產生出來的字串,剛好可以直接拿來給 cp 或 mv 這種需要輸入來源和目的檔的指令用,所以,如果阿舍把上面這一行指令的 echo 指令拿掉來換成 cp 指令的話,那就可以馬上在原來的資料夾建立該檔案的備份檔案哩 !
$ cp /var/www/arthurtoday.com/index.{html,html.BAK}
但是,這種在原地建立備份的用途對阿舍來說,實用性不大,因為,阿舍大都會把檔案備份到其它資料夾,所以,沒有辦法指定備份資料夾就不太有用哩 ! 不過,阿舍發現在備份同一個資料夾下的多㑼不同檔案名稱時,會滿用的哩 !
![]() |
幾種 {} 符號的應用範例 |
$ cp /etc/nginx/sites-available/{default,arthurtoday.com,mdoc.cc} ~/bak
這個 {} 符號不只可以用在 cp 指令或 mv 指令而己,還可以搭配很多指令來用,都可以用來減少打字的時間,有空可以試試、玩玩囉 ! ...
問題還是沒解決嗎 ?? 這裡有更多的 Ubuntu 相關教學可以參考哩 ...
買本阿舍寫的電子書帶走 - Ubuntu 指令新手馬上會用到的 35 個技法
2 則留言 :
$ echo /var/www/arthurtoday.com/index.{html,html.BAK}
/var/www/arthurtoday.com/indexhtml /var/www/arthurtoday.com/index.html.BAK
應該是
$ echo /var/www/arthurtoday.com/index.{html,html.BAK}
/var/www/arthurtoday.com/index.html /var/www/arthurtoday.com/index.html.BAK
吧?
Hello,
是的,已更新 ...
謝謝囉 ! ... ^^=
張貼留言