檔名自動展開 (File Name Expansion)
 
   
為避免鍵入冗長的檔案名稱,Unix 讓使用者使用一些特殊符號來簡化一個或一批檔名。 當一個使用者下達一個牽涉到檔案名稱的指令時, 系統會找出所有符合這個名稱的檔案, 例如'ls A*jpg',系統會列出當前工作目錄下檔名為A開頭而以jpg 結尾的所有檔案。 這些特殊符號有人稱之為「萬用字元」(Wildcard/meta character)。 以下是常用的三種萬用字元:
符號 意義
*
代表任意長度的字串
?
代表任何的單一字元
[...]
代表區間內定義的任一字元
 
   
例如:
符號 意義
c*
代表cat ,cp ,cal ...任意長度且開頭為c 的檔案。
ca?
代表cat,cal ...三個字且前二字為ca的檔案。
ca[a-z]
代表caa,cab,caz ... 三個字且頭二字為ca第三字為a到z的檔案。
 
   
當執行下列指令時:
 cd /bin
 ls -al
系統將會列出好多執行檔,如果你只想找"p" 開頭的檔案,可以鍵入
 ls p*
 
 
Tilde Expansion
 
   
有些版本的 Unix 系統,另有一種萬用字元 "~"加在使用者名稱之前, 可代表該使用者的 $HOME 目錄, 例如:
~clinton        # 使用者 clinton 的 $HOME 目錄 
在不同使用者之間複製、移動、或取用檔案非常方便。例如:使用者 clinton 寫了一個很好用的 shell script, "cmd", 放在他的$HOME/bin 欲分享給其他使用者,其他使用者不需知道該使用者所在的絕對路徑,即可用
~clinton/bin/cmd 
來使用這個 script。
 
   
對同一個使用者而言,"~" 等於是 $HOME,例如:
cp ~/bin/cmd  $HOME      # 將 $HOME/bin/cmd 複製到 $HOME 目錄 
Web Page Copyright: 亞洲大學資訊電機學院 連耀南 yaonanlien@asia.edu.tw  wildcard.htm,  Tue Jul 22 22:59:45 CST 2025