Linux萬用字元和特殊符號

2021-07-03 09:55:39 字數 1652 閱讀 1152

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

符號意義

*代表『 0 個到無窮多個』任意字元

?代表『一定有乙個』任意字元

[ ]同樣代表『一定有乙個在括號內』的字元(非任意字元)。例如 [abcd] 代表『一定有乙個字元,可能是 a, b, c, d 這四個任何乙個』

[ - ]

若有減號在中括號內時,代表『在編碼順序內的所有字元』。例如 [0-9] 代表0 到 9 之間的所有數字,因為數字的語系編碼是連續的!

[^ ]

若中括號內的第乙個字元為指數符號 (^) ,那表示『反向選擇』,例如 [^abc] 代表一定有乙個字元,只要是非 a, b, c 的其他字元就接受的意思。

接下來讓我們利用萬用字元來玩些東西吧!首先,利用萬用字元配合 ls 找檔名看看:

[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

除了萬用字元之外,bash 環境中的特殊符號有哪些呢?底下我們先匯整一下:

符號內容

#批註符號:這個最常被使用在 script 當中,視為說明!在後的資料均不執行

\跳脫符號:將『特殊字元或萬用字元』還原成一般字元

|管線 (pipe):分隔兩個管線命令的界定(後兩節介紹);

;連續命令下達分隔符:連續性命令的界定 (注意!與管線命令並不相同)

~使用者的家目錄

$取用變數前導符:亦即是變數之前需要加的變數取代值

&工作控制 (job control):將命令變成背景下工作

!邏輯運算意義上的『非』 not 的意思!

/目錄符號:路徑分隔的符號

>, >>

資料流重導向:輸出導向,分別是『取代』與『累加』

<, <<

資料流重導向:輸入導向 (這兩個留待下節介紹)

' '單引號,不具有變數置換的功能

" "具有變數置換的功能!

` `兩個『 ` 』中間為可以先執行的命令,亦可使用 $( )

( )在中間為子 shell 的起始與結束

在中間為命令區塊的組合!

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

Linux 萬用字元與特殊符號

符號 內容 萬用字元,代表 0 個或多個字元 或數字 萬用字元,代表 一定有 乙個字母 批註,這個最常被使用在 script 當中,視為說明 跳脫符號,將 特殊字元或萬用字元 還原成一般字元 分隔兩個管線命令的界定 連續性命令的界定 注意!與管線命令並不相同 使用者的家目錄 取變數值 將指令變成背景...

萬用字元與特殊符號

萬用字元符與特殊符號 符號內容 萬用字元,代表0 或多個字元 數字 萬用字元,代表乙個字母 批註,這個最常被使用在 script當中,視為說明 跳脫符號,將 特殊字元或萬用字元 還原成一般字元 分隔兩個管道命令的界定 連續性命令的界定 使用者的家目錄 取出變數中的內容 有點類似於c 語言裡 跟指標的...

Linux萬用字元 特殊符號使用記錄

萬用字元 符號作用 匹配任意 0個或多個 字元或字串 包括空字串 匹配任意1個字元 有且只有乙個字元 abcd 匹配abcd中任何乙個字元 abcd也可是其他任意不連續字元 a z 匹配中a到z之間的任意乙個字元 a到z表示範圍 字元前後要連續 表示範圍的意思 也可以用連續數字 1 9 abcd 同...