條件判斷

文件測試操做符html

 

若是下面的條件成立將會返回真.緩存

-e

文件存在socket

-a

文件存在ide

這個選項的效果與-e相同. 可是它已經被"棄用"了, 而且不鼓勵使用.測試

-f

表示這個文件是一個通常文件(並非目錄或者設備文件)ui

-s

文件大小不爲零spa

-d

表示這是一個目錄htm

-b

表示這是一個塊設備(軟盤, 光驅, 等等.)ci

-c

表示這是一個字符設備(鍵盤, modem, 聲卡, 等等.)get

-p

這個文件是一個管道

-h

這是一個符號連接

-L

這是一個符號連接

-S

表示這是一個socket

-t

文件(描述符)被關聯到一個終端設備上

這個測試選項通常被用來檢測腳本中的stdin([ -t 0 ]) 或者stdout([ -t 1 ])是否來自於一個終端.

-r

文件是否具備可讀權限(指的是正在運行這個測試命令的用戶是否具備讀權限)

-w

文件是否具備可寫權限(指的是正在運行這個測試命令的用戶是否具備寫權限)

-x

文件是否具備可執行權限(指的是正在運行這個測試命令的用戶是否具備可執行權限)

-g

set-group-id(sgid)標記被設置到文件或目錄上

若是目錄具備sgid標記的話, 那麼在這個目錄下所建立的文件將屬於擁有這個目錄的用戶組, 而沒必要是建立這個文件的用戶組. 這個特性對於在一個工做組中共享目錄很是有用.

-u

set-user-id (suid)標記被設置到文件上

若是一個root用戶所擁有的二進制可執行文件設置了set-user-id標記位的話, 那麼普通用戶也會以root權限來運行這個文件. [1] 這對於須要訪問系統硬件的執行程序(好比pppdcdrecord)很是有用. 若是沒有suid標誌的話, 這些二進制執行程序是不可以被非root用戶調用的.

	      -rwsr-xr-t    1 root       178236 Oct  2  2000 /usr/sbin/pppd
	      
對於設置了 suid標誌的文件, 在它的權限列中將會以 s表示.

-k

設置粘貼位

對於"粘貼位"的通常瞭解, save-text-mode標誌是一個文件權限的特殊類型. 若是文件設置了這個標誌, 那麼這個文件將會被保存到緩存中, 這樣能夠提升訪問速度. [2] 粘貼位若是設置在目錄中, 那麼它將限制寫權限. 對於設置了粘貼位的文件或目錄, 在它們的權限標記列中將會顯示t.

	      drwxrwxrwt    7 root         1024 May 19 21:26 tmp/
	      
若是用戶並不擁有這個設置了粘貼位的目錄, 可是他在這個目錄下具備寫權限, 那麼這個用戶只能在這個目錄下刪除本身所擁有的文件. 這將有效的防止用戶在一個公共目錄中不慎覆蓋或者刪除別人的文件. 好比說 /tmp目錄. (固然, 目錄的全部者或者 root用戶能夠隨意刪除或重命名其中的文件.)

-O

判斷你是不是文件的擁有者

-G

文件的group-id是否與你的相同

-N

從文件上一次被讀取到如今爲止, 文件是否被修改過

f1 -nt f2

文件f1比文件f2

f1 -ot f2

文件f1比文件f2

f1 -ef f2

文件f1和文件f2是相同文件的硬連接

!

"非" -- 反轉上邊全部測試的結果(若是沒給出條件, 那麼返回真).

相關文章
相關標籤/搜索