關於linux的test用法

zhaoqing0803發表於2011-09-16
    當我們要檢測檔案屬性時,就需要用test這個命令
     -e  該檔名是否存在
     -f    該檔名是否存在且為檔案(file)
    -d   該檔名是否存在且為目錄
    -b   該檔名是否存在且為一個block device 裝置
    -c   該檔名是否存在且為一個character device 裝置
    -S   該檔名是否存在且為一個Socket檔案
    -p    該檔名是否存在且為一個FIFO(pipe)檔案
    -L    該檔名是否存在且為連線檔
-r  偵測該檔名是否存在且具有【可讀】的許可權
-w  偵測該檔名是否存在且具有【可寫】的許可權
-x  偵測該檔名是否存在且具有【可執行】的許可權
-u  偵測該檔名是否存在且具有【SUID】的屬性
-g  偵測該檔名是否存在且具有【SGID】的屬性
-k  偵測該檔名是否存在且具有【Sticky bit】的屬性
-g  偵測該檔名是否存在且為【非空白檔案】的屬性

-nt (newer than)判斷file1 是否比file2新
-ot (older than)判斷file1 是否比file2舊
-ef 判斷file1與file2 是否為同一檔案,可用在判斷hard link的判定上。主要
    意義在判定,兩個檔案是否均指向同一個innode裡!


-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)

test -z string 判定字串是否為0?若string為空字串,則為true
test -n string 判定字串是否非為0?若string為空字串,則為false。
               注:-n 亦可省略
test str1=str2 判定str1是否等於str2,若相等,則回傳true
test str!=str2 判定str1是否不等於str2,若相等,則回傳false

-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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23205405/viewspace-707736/,如需轉載,請註明出處,否則將追究法律責任。

相關文章