測試標志
代表意義
文件名、文件類型
-e
該文件名是否存在
-f
該文件名是否存在且為file
-d
該文件名是否存在且為目錄
-b
該文件名是否存在且為一個block
-c
該文件名是否存在且為一個character device設備
-S
該文件名是否存在且為一個socket文件
-p
該文件名是否存在且為一個FIFO(pipe)文件
-L
該文件名是否存在且為一個連接文件
文件權限檢測
-r
檢測文件名是否存在且具有“可讀”權限
-w
檢測文件名是否存在且具有“可寫”權限
-x
檢測文件名是否存在且具有“可執行”權限
-u
檢測文件名是否存在且具有“SUID”權限
-g
檢測文件名是否存在且具有“SGID”權限
-k
檢測文件名是否存在且具有“Sticky bit”權限
-s
檢測文件名是否存在且為“非空白文件”
兩個文件的比較
-nt
(newer than)判斷file1是否比file2新
-ot
(older than)判斷file是否比file2舊
-ef
判斷file1與file2是否為同一個文件,可用在判斷hard link上
數字之間的判定
-eq
equal
-ne
not equal
-gt
greater than
-lt
less than
-ge
greater than or equal
-le
less than or equal
判斷字符串的數據
test -z string
判斷字符串是否為0,若為空返回true
test -n string
判斷字符串是否為0,若為空返回false
test str1 = str2
判斷str1是否等於str2,若相等,返回true
test str1 != str2
判斷str1是否等於str2,若相等,返回false
多重條件的判斷
-a
兩個條件同時成立,eg:test -r file a test -x file,同時成立返回true
-o
任何一個條件成立,eg:test -r file o test -x file,同時成立返回true
!
反向狀態,如test!-x file,當file不具有x時,返回true