linux命令test功能,linux利用test命令的测试功能

当要检测系统上的某些文件或者相关属性时,利用test这个命令来工作:

测试的标志

代表意义

-e

该文件名是否存在

-f

该文件名是否存在且为文件

-d

该文件名是否存在且为目录

-b

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

-c

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

-S

该文件名是否存在且为一个Socket文件

-p

该文件名是否存在且为一个FIFO文件

-L

该文件名是否存在且为一个连接文件

关于文件的权限检测

-r

检测该文件名是否存在且具有“可读”权限

-w

检测该文件名是否存在且具有“可写”权限

-x

检测该文件名是否存在且具有“可执行”权限

-u

检测该文件名是否具有“SUID”的属性

-g

检测该文件名是否存在且具有“SGID”的属性

-k

检测该文件名是否存在且具有“Sticky bit”的属性

-s

检测该文件名是否存在且为“非空白文件”

两个文件之间的比较,如:test file1 –nt file2

-nt

判断file1是否比file2新

-ot

判断file1是否比file2旧

-ef

判断file1与file2是否为同一文件,可用在判断hard link的判定上。主要意义在于判断两个文件是否均指向同一个iNode

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

-eq

两数值相等

-ne

两数值不相等

-gt

n1大于n2

-lt

n1小于n2

-ge

n1大于等于n2

-le

n1小于等于n2

判定字符串的数据

test –z string

判定字符串是否为0,若string为空字符串,则true

test –n string

判定字符串是否非为0,若string为空字符串,则为false,注:-n也可以省略

test str1=str2

判定str1是否等于str2,若相等,则会回传true

test str1 != str2

判定str1是否不等于str2,若相等,则回传false

多重条件判定,例如:test –r filename –a –x filename

-a

两个条件同时成立!,例如test –r file –a –x,则file同时具有r与x权限时,才回传true

-o

任何一个条件成立,例如,test –r file –o –x file,则file具有r或x权限时,就可回传true

!

反向状态,如,test ! –x file,当file不具有x时,回传true 现在就利用test来做一个简单的例子

~# vim sh05.sh

#!/bin/bash

#Program

#User input a filename, program will check the flowing;

#1)exist? 2) file/directory? 3) file permissions

#History

#2015/2/3 tian First release

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH

echo -e "Please input a filename I will check the filename's type and\

permission.\n "

read -p "Please input a filename: " filename

test -z $filename && echo "You Must input a filename." && exit 0

test ! -e $filename && echo "The filename '$filename' Do Not exist" && exit 0

test -f $filename && filetype="regular file"

test -d $filename && filetype="directory"

test -r $filename && perm="readable"

test -w $filename && perm="$perm writeable"

test -x $filename && perm="$perm excutable"

echo "The filename: $filename is a $filetype"

echo "And the permissions are : $perm"

~# source sh05.sh

Please input a filename I will check the filename's type andpermission.

Please input a filename: tianfile

The filename: tianfile is a regular file

And the permissions are : readable writeable

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值