test命令的测试功能

关于某个文件名的"文件类型"的判断:test  -e  filename

-e  判断该文件名是否存在

-f  判断该文件名是否存在且为文件(file)

-d  判断该文件名是否存在且为目录(directory)

-b  判断该文件名是否存在且为一个block device设备

-c  判断该文件名是否存在且为一个character device设备

-S  判断该文件名是否存在且为一个Socket文件

-p  判断该文件名是否存在且为一个FIFO(pipe)文件

-L  判断该文件名是否存在且为一个连接文件

关于某个文件名的权限检测:test  -r  filename

-r  检测该文件名是否存在且具有可读的权限

-w  检测该文件名是否存在且具有可写的权限

-x  检测该文件名是否存在且具有可执行的权限

-u  检测该文件名是否存在且具有"SUID"的属性

-g  检测该文件名是否存在且具有"SGID"的属性

-k  检测该文件名是否存在且具有"Sticky bit"的属性

-s  检测该文件名是否存在且为非空白文件

连个文件之间的比较:test  file1 -nt  file2

-nt(newer than)  判断file1是否比file2新

-ot(older than)  判断file1是否比file2旧 

-ef       判断file1和file2是否为同一个文件,可用在hard link的判定上 。

关于两个整数之间的判定:test  n1  -eq  n2

-eq  两数值相等(equal)

-ne  两数值不等(not equal)

-gt   n1大于n2(greater than)

-lt    n1小于n(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不为空字符串,则为true

test   str1=str2    判定字符串str1是否等于str2,若相等,则为true

test   str1!=st2       判定字符创Str1是否不等于str2,若不相等,则为true

原文地址:https://www.cnblogs.com/cwy-blog/p/8038855.html