美文网首页
test命令

test命令

作者: mejhwu | 来源:发表于2018-02-05 12:07 被阅读0次
    1. 关于某个文件名的“文件类型”判断,如test -e filename 表示存在否
    • -e 该“文件名”是否存在?(常用)
    • -f 该“文件名”是否存在且为文件(file)?(常用)
    • -d 该“文件名”是否存在且为目录(directory)?(常用)
    • -b 该“文件名”是否存在且为一个block device 设备?
    • -c 该“文件名”是否存在且为一个character device 设备?
    • -S 该“文件名”是否存在且为一个Socket 文件?
    • -p 该“文件名”是否存在且为一个FIFO (pipe) 文件?
    • -L 该“文件名”是否存在且为一个链接文件?
    1. 关于文件的权限侦测,如test -r filename 表示可读否(但root 权限常有例外)
    • -r 侦测该文件名是否存在且具有“可读”的权限?
    • -w 侦测该文件名是否存在且具有“可写”的权限?
    • -x 侦测该文件名是否存在且具有“可执行”的权限?
    • -u 侦测该文件名是否存在且具有“SUID”的属性?
    • -g 侦测该文件名是否存在且具有“SGID”的属性?
    • -k 侦测该文件名是否存在且具有“Sticky bit”的属性?
    • -s 侦测该文件名是否存在且为“非空白文件”?
    1. 两个文件之间的比较,如: test file1 - -nt file2
    • -nt (newer than)判断file1 是否比file2 新
    • -ot (older than)判断file1 是否比file2 旧
    • -ef 判断file1 与file2 是否为同一文件,可用在判断hard link 的判定上。主要意义在判定,两个文件是否均指向同一个inode 哩!
    1. 关于两个整数之间的判定,例如test n1 -eq n2
    • -eq 两数值相等(equal)
    • -ne 两数值不等(not equal)
    • -gt n1 大于n2 (greater than)
    • -lt n1 小于n2 (less than)
    • -ge n1 大于等于n2 (greater than or equal)
    • -le n1 小于等于n2 (less than or equal)
    1. 判定字串的数据
    • 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
    1. 多重条件判定,例如: test -r filename -a -x filename
    • -a (and)两状况同时成立!例如test -r file -a -x file,则file 同时具有r 与x 权限时,才回传true。
    • -o (or)两状况任何一个成立!例如test -r file -o -x file,则file 具有r 或x 权限时,就可回传true。
    • ! 反相状态,如test ! -x file ,当file 不具有x 时,回传true

    利用判断符号[],
    中括号的两端需要有空白字符来分隔

    相关文章

      网友评论

          本文标题:test命令

          本文链接:https://www.haomeiwen.com/subject/ravbzxtx.html