符號 意義
* 代表『 0 個到無窮多個』任意字元
? 代表『一定有一個』任意字元
[ ] 同樣代表『一定有一個在括號內』的字元(非任意字元)。例如 [abcd] 代表『一定有一個字元, 可能是 a, b, c, d 這四個任何一個』
[ - ] 若有減號在中括號內時,代表『在編碼順序內的所有字元』。例如 [0-9] 代表 0 到 9 之間的所有數字,因為數字的語系編碼是連續的!
[^ ] 若中括號內的第一個字元為指數符號 (^) ,那表示『反向選擇』,例如 [^abc] 代表 一定有一個字元,只要是非 a, b, c 的其他字元就接受的意思。
[root@www ~]# LANG=C <==由於與編碼有關,先設定語系一下
範例一:找出 /etc/ 底下以 cron 為開頭的檔名
[root@www ~]# ll -d /etc/cron* <==加上 -d 是為了僅顯示目錄而已
範例二:找出 /etc/ 底下檔名『剛好是五個字母』的檔名
[root@www ~]# ll -d /etc/????? <==由於 ? 一定有一個,所以五個 ? 就對了
範例三:找出 /etc/ 底下檔名含有數字的檔名
[root@www ~]# ll -d /etc/*[0-9]* <==記得中括號左右兩邊均需 *
範例四:找出 /etc/ 底下,檔名開頭非為小寫字母的檔名:
[root@www ~]# ll -d /etc/[^a-z]* <==注意中括號左邊沒有 *
範例五:將範例四找到的檔案複製到 /tmp 中
[root@www ~]# cp -a /etc/[^a-z]* /tmp
符號 內容
# 註解符號:這個最常被使用在 script. 當中,視為說明!在後的資料均不執行
\ 跳脫符號:將『特殊字元或萬用字元』還原成一般字元
| 管線 (pipe):分隔兩個管線命令的界定(後兩節介紹);
; 連續指令下達分隔符號:連續性命令的界定 (注意!與管線命令並不相同)
~ 使用者的家目錄
$ 取用變數前置字元:亦即是變數之前需要加的變數取代值
& 工作控制 (job control):將指令變成背景下工作
! 邏輯運算意義上的『非』 not 的意思!
/ 目錄符號:路徑分隔的符號
>, >> 資料流重導向:輸出導向,分別是『取代』與『累加』
<, << 資料流重導向:輸入導向 (這兩個留待下節介紹)
' ' 單引號,不具有變數置換的功能
" " 具有變數置換的功能!
` ` 兩個『 ` 』中間為可以先執行的指令,亦可使用 $( )
( ) 在中間為子 shell 的起始與結束
{ } 在中間為命令區塊的組合!
以上為 bash 環境中常見的特殊符號彙整
理論上,你的『檔名』盡量不要使用到上述的字元啦
阅读(918) | 评论(0) | 转发(0) |