【Shell】萬用字元與特殊符號

來源:互聯網
上載者:User

標籤:

——來自《鳥哥的Linux私房菜》

 

在 bash 的作業環境中還有一個非常有用的功能,那就是萬用字元 (wildcard) ! 我們利用 bash 處理資料就更方便了!底下列出一些常用的萬用字元:

符號 意義
* 代表『 0 個到無窮多個』任一字元
? 代表『一定有一個』任一字元
[ ] 同樣代表『一定有一個在括弧內』的字元(非任一字元)。例如 [abcd] 代表『一定有一個字元, 可能是 a, b, c, d 這四個任何一個』
[ - ] 若有減號在中括弧內時,代表『在編碼順序內的所有字元』。例如 [0-9] 代表 0 到 9 之間的所有數字,因為數位語系編碼是連續的!
[^ ] 若中括弧內的第一個字元為指數符號 (^) ,那表示『反向選擇』,例如 [^abc] 代表 一定有一個字元,只要是非 a, b, c 的其他字元就接受的意思。

接下來利用萬用字元配合 ls 找檔名看看:

範例一:找出 /etc/ 底下以 cron 為開頭的檔名  ll -d /etc/cron*    <==加上 -d 是為了僅顯示目錄而已範例二:找出 /etc/ 底下檔案名稱『剛好是五個字母』的檔案名稱  ll -d /etc/?????    <==由於 ? 一定有一個,所以五個 ? 就對了範例三:找出 /etc/ 底下檔案名稱含有數位檔案名稱  ll -d /etc/*[0-9]*  <==記得中括弧左右兩邊均需 *範例四:找出 /etc/ 底下,檔名開頭非為小寫字母的檔案名稱:  ll -d /etc/[^a-z]*  <==注意中括弧左邊沒有 *範例五:將範例四找到的檔案複製到 /tmp 中  cp -a /etc/[^a-z]* /tmp

除了萬用字元之外,bash 環境中還有以下特殊符號:

符號 內容
# 批註符號:這個最常被使用在 script 當中,視為說明!在後的資料均不運行
\ 跳脫符號:將『特殊字元或萬用字元』還原成一般字元
| 管線 (pipe):分隔兩個管線命令的界定(後兩節介紹);
; 連續命令下達分隔字元:連續性命令的界定 (注意!與管線命令並不相同)
~ 使用者的家目錄
$ 取用變數前置字元:亦即是變數之前需要加的變數取代值
& 工作控制 (job control):將命令變成背景下工作
! 邏輯運算意義上的『非』 not 的意思!
/ 目錄符號:路徑分隔的符號
>, >> 資料流重導向:輸出導向,分別是『取代』與『累加』
<, << 資料流重導向:輸入導向 (這兩個留待下節介紹)
‘ ‘ 單引號,不具有變數置換的功能
" " 具有變數置換的功能!
` ` 兩個『 ` 』中間為可以先啟動並執行命令,亦可使用 $( )
( ) 在中間為子 shell 的起始與結束
{ } 在中間為命令區塊的組合!

以上為 bash 環境中常見的特殊符號彙整!理論上,你的『檔名』盡量不要使用到上述的字元啦!

【Shell】萬用字元與特殊符號

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.