按照檔案類型進行判斷:
-b 檔案 | 判斷該檔案是否存在,并且是否為塊裝置(是塊裝置檔案為真) |
-c 檔案 | 判斷該檔案是否存在,并且是否為字元裝置檔案 |
-d 檔案 | 判斷該檔案是否存在,并且是否為目錄檔案 |
-e 檔案 | 判斷該檔案是否存在 |
-f 檔案 | 判斷該檔案是否存在,并且是否為普通檔案 |
-L 檔案 | 判斷該檔案是否存在,并且是否為符号連結檔案 |
-p 檔案 | 判斷該檔案是否存在,并且是否為管道檔案 |
-s 檔案 | 判斷該檔案是否存在,并且是否為非空 |
-S 檔案 | 判斷該檔案是否存在,并且是否為套接字檔案 |
按照檔案權限進行判斷:
-r 檔案 | 判斷該檔案是否存在,并且該檔案是否具有讀權限; |
-w 檔案 | 判斷該檔案是否存在,并且該檔案是否具有寫權限; |
-x 檔案 | 判斷該檔案是否存在,并且該檔案是否具有執行權限; |
-u 檔案 | 判斷該檔案是否存在,并且該檔案是否具有suid權限; |
-g 檔案 | 判斷該檔案是否存在,并且該檔案是否具有sgid權限; |
-k 檔案 | 判斷該檔案是否存在,并且該檔案是否具有sbit權限; |
兩個檔案之間進行比較:
檔案1 -nt 檔案2 | 判斷檔案1的修改時間是否比檔案2的新; |
檔案1 -ot 檔案2 | 判斷檔案1的修改時間是否比文伯2的舊; |
檔案1 -ef 檔案2 | 判斷檔案1和檔案2的inode号是否一緻,可以了解為兩個檔案是否為同一檔案。這個判斷用于判斷硬連結是很好的方法。 |
兩個整數之間進行比較:
整數1 -eq 整數2 | 判斷整數1是否和整數2相等; |
整數1 -ne 整數2 | 判斷整數1是否和整數2不相等; |
整數1 -gt 整數2 | 判斷整數1是否大于整數2; |
整數1 -lt 整數2 | 判斷整數1是否小于整數2; |
整數1 -ge 整數2 | 判斷整數1是否大于等于整數2; |
整數1 -le 整數2 | 判斷整數1是否小于等于整數2; |
字元串的判斷:
-z 字元串 | 判斷字元串是否為空,為空傳回真; |
-n 字元串 | 判斷字元串是否為非空; |
字元串1 == 字元串2 | 判斷字元串1和字元串2是否相等; |
字元串1 != 字元串2 | 判斷字元串1和字元串2是否不相等; |
多重條件判斷:
判斷1 -a 判斷2 | 邏輯與,判斷1和判斷2都成立,最終的結果才為真 |
判斷1 -o 判斷2 | 邏輯或,判斷1和判斷2有一個成立,最終的結果就為真 |
! 判斷 | 邏輯非,使原始的判斷式取反 |