【Linux】test命令详解

文件检查

参数意义
-e该文件名是否存在
-f该文件名是否存在且为file
-d该文件名是否存在且为目录
-b该文件名是否存在且为一个block
-c该文件名是否存在且为一个character device设备
-S该文件名是否存在且为一个socket文件
-p该文件名是否存在且为一个FIFO(pipe)文件
-L该文件名是否存在且为一个连接文件

文件权限检查

**参数意义**
-r检测文件名是否存在且具有“可读”权限
-w检测文件名是否存在且具有“可写”权限
-x检测文件名是否存在且具有“可执行”权限
-u检测文件名是否存在且具有“SUID”权限
-g检测文件名是否存在且具有“SGID”权限
-k检测文件名是否存在且具有“Sticky bit”权限
-s检测文件名是否存在且为“非空白文件”

文件的比较

参数意义
-nt(newer than)判断file1是否比file2新
-ot(older than)判断file是否比file2旧
-ef判断file1与file2是否为同一个文件,可用在判断hard link上

数字之间的判定

参数意义
-eqequal
-nenot equal
-gtgreater than
-ltless than
-gegreater than or equal
-leless than or equal

判断字符串的数据

参数意义
test -z string判断字符串是否为0,若为空返回true
test -n string判断字符串是否为0,若为空返回false
test str1 = str2判断str1是否等于str2,若相等,返回true
test str1 != str2判断str1是否等于str2,若相等,返回false

多重条件的判断

参数意义
-a两个条件同时成立,eg:test -r file -a -x file,同时成立返回true
-o任何一个条件成立,eg:test -r file -o -x file,同时成立返回true
反向状态,如test!-x file,当file不具有x时,返回true

通常我们会使用[ ]代替test,
注意:[ -f file ]与中间的判断条件需要用空格隔开
在这里插入图片描述

[root@bogon /home/Sudley]#ls |grep -v '[[:digit:]]'
a.out
dd
filename
node.h
test.c
testfile
test.sh
testup.c
[root@bogon /home/Sudley]#sh test.sh
test is true,there is test.c
[] is true,there is test.c
test is true,there is test.c,number=120
test is true,there is test.c,number=120
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值