給自己的筆記

[-a file] 如果file存在則為真 (不過貌似有時候-a表示為and:條件與)

[-b file] 如果file存在且是一個塊特殊文件則為真

[-c file] 如果file存在且是一個字特殊文件則為真 

[-d file] 如果file文件存在且是一個目錄則為真 
-d前的 運算子會計算其運算元的邏輯否定。(也就是說,它會在運算元評估為 false 時產生 true,並在運算元評估為 true 時產生 false) 
例如: 
if [ ! -d $lcd_path/$par_date ] 
表示後面的那個目錄不存在,則執行後面的then操作

[-e file] 如果file文件存在則為真 

[-f file] 如果file存在且是一個普通文件則為真

[-G file] 如果file存在且屬有效用戶組則為真 

[-g file] 如果file存在且已經設置了SGID則為真(SUID 是 Set User ID, SGID 是 Set Group ID的意思) 

[-h file] 如果file存在且是一個符號連接則為真 

[-k file] 如果file存在且已經設置黏滯位(註1)則為真 
當一個目錄被設置為"黏滯位"(用chmod a+t),則該目錄下的文件只能由 
一、超級管理員刪除 
二、該目錄的所有者刪除 
三、該文件的所有者刪除 
也就是說,即便該目錄是任何人都可以寫,但也只有文件的屬主才可以刪除文件。 
具體例子如下: 
#ls -dl /tmp 
drwxrwxrwt 4 root    root  ......... 
注意other位置的t,這便是黏滯位。 

[-L file] 如果file存在且是一個符號連結(symbolic link 或 symlink亦即是捷徑)則為真 

[-n string] or [string] “string”的長度為非零non-zero則為真 
[sting1==string2] 如果2個字符串相同。“=”may be used instead of “==”for strict posix compliance則為真 
[string1!=string2] 如果字符串不相等則為真 
[string1<string2] 如果“string1”sorts before“string2”lexicographically in the current locale則為真 
[arg1 OP arg2] “OP”is one of –eq,-ne,-lt,-le,-gt or –ge.These arithmetic binary oprators return true if “arg1”is equal to,not equal to,less than,less than or equal to,greater than,or greater than or equal to“agr2”,respectively.“arg1”and “agr2”are integers. 

[-O file] 如果file存在且屬有效用戶ID則為真 

[-o optionname] 如果shell選項“optionname”開啟則為真 

[-p file] 如果file存在且是一個名字管道(F如果O)則為真 
管道是linux里面進程間通信的一種方式,其他的還有像信號(signal)、信號量、消息隊列、共享內存、套接字(socket)等。 

[-r file] 如果file存在且是可讀的則為真 

[-S file] 如果file存在且是一個套接字(註2)則為真 
[file1 –nt file2] 如果file1 has been changed more recently than file2或者file1 exists and file2 does not則為真 
[file1 –ot file2] 如果file1比file2產生時間久,或者file2存在且file1不存在則為真 
[file1 –ef file2] 如果file1和file2指向相同的設備和節點號則為真 

[-s file] 如果file存在且大小不為0則為真 

[-t FD] 如果文件描述符FD打開且指向一個終端則為真 

[-u file] 如果file存在且設置了SUID(set userID)則為真 

[-w file] 如果file存在且是可寫的則為真 

[-x file] 如果file存在且是可執行的則為真 

[-z string] “string”的長度為零則為真 

 

轉載自
https://blog.csdn.net/shenhuxi_yu/article/details/53047012

註1:
黏滯位(Sticky bit),又稱作黏著位,是Unix文件系統權限的一個旗標。 
最常見的用法在目錄上設置黏滯位,如此以來,只有目錄內文件的所有者或者root才可以刪除或移動該文件。 
如果不為目錄設置黏滯位,任何具有該目錄寫和執行權限的用戶都可以刪除和移動其中的文件。

註2:
套接字是一種通訊機制,是支援TCP/IP網路通訊的基本單元。
套接字描述符可以類比於檔案描述符。
事實上對於 一切皆檔案 的UNIX或類UNIX(比如Linux)作業系統而言,套接字就是一種檔案,而套接字描述符就是一種檔案描述符。
https://www.796t.com/content/1544687282.html

創作者介紹
創作者 胖胖的學習筆記 的頭像
胖胖

胖胖的學習筆記

胖胖 發表在 痞客邦 留言(0) 人氣( 3 )