条件判断

文件测试操做符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是相同文件的硬连接

!

"非" -- 反转上边全部测试的结果(若是没给出条件, 那么返回真).

相关文章
相关标签/搜索