1. 程式人生 > >學習bash——通配符與特殊符號

學習bash——通配符與特殊符號

cdc 邏輯 solid enter /tmp 轉義 val spa pip

一、通配符

  這是bash操作環境中一個非常有用的功能,這讓我們使用bash處理數據就更方便了。

  常用通配符如下:

符號 意義
* 代表0個到無窮多個任意字符
? 代表一個任意字符
[] 代表一定有一個在中括號內的字符(非任意字符)
[-] 若有減號在中括號內,代表在編碼順序內的所有字符
[^] 若中括號內的第一個字符為^,則表示原向選擇

【示例區】

預處理:LANG=C; alias ll=ls -al

題目1:找出/etc/下面以cron為開頭的文件名

命令:ll -d /etc/cron*      //加上-d僅僅是為了顯示目錄而已

題目2:找出/etc/下面文件名剛好是五個字母的文件名

命令:ll -d ?????

題目3:找出/etc/下面文件名含有數字的文件名

命令:ll -d /etc/*[0-9]*

題目4:找出/etc/下面文件名開頭不是小寫字母的文件名

命令:ll -d /etc/[^a-z]*

題目5:將題目4找到的文件復制到/tmp中

命令:cp -a /etc/[^a-z]* /tmp

二、特殊符號

符號 內容
# 批註符號,常用於script中,視為說明。
\ 轉義符號,將“特殊字符或通配符”還原成一般字符
| 管道(pipe),分隔兩個管道命令的界定
; 連續命令執行分隔符
~ 用戶的主文件夾
$ 使用變量前導符,即是變量之前需要加的變量替代值
& 作業控制,將命令變成背景下工作
! 邏輯運算意義上的“非”的意思
/ 目錄符號,路徑分隔的符號
>,>> 數據流重定向,輸出導向,分別是“替換”與“累加”
<,<< 數據流重定向,輸入導向
‘ ‘ 單引號,不具有變量置換的功能
" " 具有變量置換的功能
` ` 兩個`中間為可以先執行的命令,也可使用$()
() 在中間為子shell的起始與結束
{} 在中間為命令塊的組合

  我們的文件名應盡量避免使用到上述的字符。

學習bash——通配符與特殊符號