1.?
關于某個文件名的『類型』偵測
(
存在與否
)
,如
?test -e filename??
-e?
該『文件名』是否存在?
(
常用
)??
-f?
該『文件名』是否為文件
(file)
?
(
常用
)??
-d?
該『文件名』是否為目錄
(directory)
?
(
常用
)??
-b?
該『文件名』是否為一個
?block device?
裝置?
??
-c?
該『文件名』是否為一個
?character device?
裝置?
??
-S?
該『文件名』是否為一個
?Socket?
文件?
??
-p?
該『文件名』是否為一個
?FIFO (pipe)?
文件?
??
-L?
該『文件名』是否為一個連結檔?
?
2.?
關于文件的權限偵測,如
?test -r filename
??
-r? 偵測該文件名是否具有『可讀』的屬性? ??
-w? 偵測該文件名是否具有『可寫』的屬性? ??
-x? 偵測該文件名是否具有『可執行』的屬性? ??
-u? 偵測該文件名是否具有『 SUID 』的屬性? ??
-g? 偵測該文件名是否具有『 SGID 』的屬性? ??
-k? 偵測該文件名是否具有『 Sticky bit 』的屬性? ??
-s? 偵測該文件名是否為『非空白文件』? ?
-r? 偵測該文件名是否具有『可讀』的屬性? ??
-w? 偵測該文件名是否具有『可寫』的屬性? ??
-x? 偵測該文件名是否具有『可執行』的屬性? ??
-u? 偵測該文件名是否具有『 SUID 』的屬性? ??
-g? 偵測該文件名是否具有『 SGID 』的屬性? ??
-k? 偵測該文件名是否具有『 Sticky bit 』的屬性? ??
-s? 偵測該文件名是否為『非空白文件』? ?
3.?
兩個文件之間的比較,如:
?test file1 -nt file2??
-nt (newer than) 判斷 ?file1? 是否比 ?file2? 新 ??
-ot (older than) 判斷 ?file1? 是否比 ?file2? 舊 ??
-ef? 判斷 ?file2? 與 ?file2? 是否為同一文件,可用在判斷 ?hard link? 的判定上。 主要意義在判定,兩個文件是否均指向同一個 ?inode? 哩! ?
-nt (newer than) 判斷 ?file1? 是否比 ?file2? 新 ??
-ot (older than) 判斷 ?file1? 是否比 ?file2? 舊 ??
-ef? 判斷 ?file2? 與 ?file2? 是否為同一文件,可用在判斷 ?hard link? 的判定上。 主要意義在判定,兩個文件是否均指向同一個 ?inode? 哩! ?
4.?
關于兩個整數之間的判定,例如
?test n1 -eq n2??
-eq? 兩數值相等 ?(equal)??
-ne? 兩數值不等 ?(not equal)??
-gt n1? 大于 ?n2 (greater than)??
-lt n1? 小于 ?n2 (less than)??
-ge n1? 大于等于 ?n2 (greater than or equal)??
-le n1? 小于等于 ?n2 (less than or equal)?
-eq? 兩數值相等 ?(equal)??
-ne? 兩數值不等 ?(not equal)??
-gt n1? 大于 ?n2 (greater than)??
-lt n1? 小于 ?n2 (less than)??
-ge n1? 大于等于 ?n2 (greater than or equal)??
-le n1? 小于等于 ?n2 (less than or equal)?
5.?
判定字符串的數據
??
test -z string? 判定字符串是否為 ?0? ?若 ?string? 為空字符串,則為 ?true??
test -n string? 判定字符串是否非為 ?0? ?若 ?string? 為空字符串,則為 ?false 。 ?
注: ?-n? 亦可省略 ??
test str1 = str2? 判定 ?str1? 是否等于 ?str2? ,若相等,則回傳 ?true??
test str1 != str2? 判定 ?str1? 是否不等于 ?str2? ,若相等,則回傳 ?false?
test -z string? 判定字符串是否為 ?0? ?若 ?string? 為空字符串,則為 ?true??
test -n string? 判定字符串是否非為 ?0? ?若 ?string? 為空字符串,則為 ?false 。 ?
注: ?-n? 亦可省略 ??
test str1 = str2? 判定 ?str1? 是否等于 ?str2? ,若相等,則回傳 ?true??
test str1 != str2? 判定 ?str1? 是否不等于 ?str2? ,若相等,則回傳 ?false?
6.?
多重條件判定,例如:
?test -r filename -a -x filename??
-a (and) 兩狀況同時成立!例如 ?test -r file -a -x file ,則 ?file? 同時具有 ?r? 與 ?x? 權限時,才回傳 ?true 。 ??
-o (or) 兩狀況任何一個成立!例如 ?test -r file -o -x file ,則 ?file? 具有 ?r? 或 ?x? 權限時,就可回傳 ?true 。 ??
!? 反相狀態,如 ?test ! -x file? ,當 ?file? 不具有 ?x? 時,回傳 ?true
-a (and) 兩狀況同時成立!例如 ?test -r file -a -x file ,則 ?file? 同時具有 ?r? 與 ?x? 權限時,才回傳 ?true 。 ??
-o (or) 兩狀況任何一個成立!例如 ?test -r file -o -x file ,則 ?file? 具有 ?r? 或 ?x? 權限時,就可回傳 ?true 。 ??
!? 反相狀態,如 ?test ! -x file? ,當 ?file? 不具有 ?x? 時,回傳 ?true
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
