• test命令


    test命令:判断文件类型,判断文件权限,判段表达式,判断字符串,判断整数大小/相等,判断两文件新旧,inode号是否一样


    判断文件类型

    命令 功能
    -b 文件 判断是   块设备文件
    -c 文件 判断是   字符设备文件
    -d 文件 判断是   目录文件
    -f 文件 判断是   普通文件
    -L 文件 判断是   符号链接文件
    -p 文件 判断是   管道文件
    -e 文件 判断文件是否存在
    -s 文件 判断文件内容是否为空
    -S 文件 判断文件是否为套接字文件
    注:该命令得配合 echo $?

    注:test -参数 = [ -参数 文件名 ]


    实验test -e   或者   [ -e 文件名 ]
    查看alsa,bashrc是否存在
    [root@linux etc]# test -e alsa
    [root@linux etc]# echo $?
    0
    
    [root@linux etc]# test -e bashrc
    [root@linux etc]# echo $?
    0
    
    [root@linux etc]#[ -e bashrc ]
    [root@linux etc]# echo $?
    0
    
    [root@linux etc]# ll alsa; ll bashrc
    总用量 8
    -rw-r--r--. 1 root root 203 1月  29 2014 alsactl.conf
    -rw-r--r--. 1 root root  54 6月  16 07:40 state-daemon.conf
    -rw-r--r--. 1 root root 2835 11月  9 12:28 bashrc
    



    实验[ -d 文件名 ]
    查看文件ntp是否为目录
    [root@linux etc]# [ -d ntp ]
    [root@linux etc]# echo $?
    0
    [root@linux etc]# ll ntp
    总用量 8
    -rw-------. 1 root root 86 2月  12 2014 keys
    -rw-r--r--. 1 root root 72 2月  12 2014 step-tickers
    



    实验[ -s 文件名 ]
    判断文件text文件是否有内容
    [root@linux 桌面]#   cat text
    !!!
    hello word
    [root@linux 桌面]#  [ -s text ]
    [root@linux 桌面]# echo $?
    0
    




    判断文件权限

    命令 功能
    -r 文件 判断文件有   读权限
    -w 文件 判断文件有   写权限
    -x 文件 判断文件有   执行权限
    -u 文件 判断文件有   SUID权限
    -g 文件 判断文件有   SGID权限
    -k 文件 判断文件有   SBit权限
    4代表SUID,2代表SGID,1代表SBIT

    chmod 4755 1.text



    实验[ -u 文件名 ]
    查看ss.sh文件是否有SUID权限,没有则赋之
    [root@linux Desktop]# ll ss.sh
    -rwxr-xr-x. 1 root root 191 11月  7 17:24 ss.sh
    
    [root@linux Desktop]# [ -u ss.sh ]
    [root@linux Desktop]# echo $?
    1
    
    [root@linux Desktop]# chmod u+s ss.sh
    [root@linux Desktop]# ll ss.sh
    -rwsr-xr-x. 1 root root 191 11月  7 17:24 ss.sh
    
    [root@linux Desktop]# [ -u ss.sh ]
    [root@linux Desktop]# echo $?
    0
    



    实验[ -g 文件 ]

    查看ss.sh文件是否有GUID权限,没有则赋之

    [root@linux Desktop]# ll ss.sh
    -rwxr-xr-x. 1 root root 191 11月  7 17:24 ss.sh
    
    [root@linux Desktop]# [ -g ss.sh ]
    [root@linux Desktop]# echo $?
    1
    
    [root@linux Desktop]# chmod g+s ss.sh
    [root@linux Desktop]# ll ss.sh
    -rwxr-sr-x. 1 root root 191 11月  7 17:24 ss.sh
    
    [root@linux Desktop]# [ -g  ss.sh ]
    [root@linux Desktop]# echo $?
    0
    



    实验[ -k 文件 ]

    查看jjs目录文件是否有SBIT权限,没有则赋之

    [root@linux Desktop]# ll
    drwxr-xr-x. 2 root root     6 9月  22 21:02 jjs
    [root@linux Desktop]# [ -k jjs ]
    [root@linux Desktop]# echo $?
    1
    
    [root@linux Desktop]# chmod o+t jjs
    [root@linux Desktop]# ll
    drwxr-xr-t. 2 root root    17 11月 18 22:43 jjs
    
    [root@linux Desktop]# [ -k jjs ]
    [root@linux Desktop]# echo $?
    0
    




    对比文件的时间新旧及inode号

    命令 功能
    文件1 -nt 文件2 判断文件1修改时间比文件2新
    文件1 -ot 文件2 判断文件1修改时间比文件2旧
    文件1 -ef 文件2 判断文件1与文件2的inode号一致,从而判断硬链接



    实验[ 文件1 -nt / -ot 文件2 ]
    查看文件new.txt与文件old.txt修改时间哪个早/晚
    [root@linux Desktop]# ll old.txt;ll new.txt
    -rw-r--r--. 1 root root 0 11月 18 23:30 old.txt
    -rw-r--r--. 1 root root 0 11月 18 23:31 new.txt
    
    [root@linux Desktop]# [ new.txt  -nt  old.txt ] && echo $? || echo $?
    0
    [root@linux Desktop]# [ old.txt  -nt  new.txt ] && echo $? || echo $?
    1
    
    [root@linux Desktop]# [ new.txt  -ot  old.txt ] && echo $? || echo $?
    1
    [root@linux Desktop]# [ old.txt  -ot  new.txt ] && echo $? || echo $?
    0
    
    



    实验[ 文件1 -ef 文件2 ]
    查看文件new.txt与文件old.txt的inode号相同吗
    [root@linux Desktop]# stat new.txt;stat old.txt
    
      文件:"new.txt"
      大小:0         	块:0          IO 块:4096   普通空文件
    设备:fd00h/64768d	Inode:103155198   硬链接:1
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    环境:unconfined_u:object_r:admin_home_t:s0
    最近访问:2020-11-18 23:31:02.617077403 +0800
    最近更改:2020-11-18 23:31:02.617077403 +0800
    最近改动:2020-11-18 23:31:02.617077403 +0800
    创建时间:-
    
      文件:"old.txt"
      大小:0         	块:0          IO 块:4096   普通空文件
    设备:fd00h/64768d	Inode:103491425   硬链接:1
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    环境:unconfined_u:object_r:admin_home_t:s0
    最近访问:2020-11-18 23:30:23.338078736 +0800
    最近更改:2020-11-18 23:30:23.338078736 +0800
    最近改动:2020-11-18 23:30:23.338078736 +0800
    创建时间:-
    
    [root@linux Desktop]# [ old.txt  -ef  new.txt ] && echo $? || echo $?
    1
    

    硬链接查看 sss.tar与 /root/sss.tr的inode号大小

    [root@linux Desktop]# ln  /sss.tar   /root/sss.tr
    
     文件:"sss.tar"
      大小:10240     	块:24         IO 块:4096   普通文件
    设备:fd00h/64768d	Inode:103491451   硬链接:2
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    环境:unconfined_u:object_r:admin_home_t:s0
    最近访问:2020-09-22 23:14:37.636869869 +0800
    最近更改:2020-09-22 23:13:52.964870487 +0800
    最近改动:2020-11-19 00:05:54.731006425 +0800
    创建时间:-
    
      文件:"/root/sss.tr"
      大小:10240     	块:24         IO 块:4096   普通文件
    设备:fd00h/64768d	Inode:103491451   硬链接:2
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    环境:unconfined_u:object_r:admin_home_t:s0
    最近访问:2020-09-22 23:14:37.636869869 +0800
    最近更改:2020-09-22 23:13:52.964870487 +0800
    最近改动:2020-11-19 00:05:54.731006425 +0800
    创建时间:-
    
    [root@linux Desktop]# [ ./sss.tar  -ef  /root/sss.tr  ] && echo $? || echo $?
    0
    




    判断两数大小

    命令 功能
    数值1 -eq 数值2 判断两数是否相等
    数值1 -ne 数值2 判断两数是否不相等
    数值1 -gt 数值2 判断数值1   >   数值2
    数值1 -ge 数值2 判断数值1   >=   数值2
    数值1 -lt 数值2 判断数值1   <    数值2
    数值1 -le 数值2 判断数值1   <=   数值2



    实验 -eq、-ne、-gt、-lt、-ge、-le

    比较34与67的大小,相等

    [root@linux Desktop]# [ 34 -eq 67 ] && echo yes || echo no
    no
    [root@linux Desktop]# [ 34 -ne 67 ] && echo yes || echo no
    yes
    [root@linux Desktop]# [ 34 -gt 67 ] && echo yes || echo no
    no
    [root@linux Desktop]# [ 34 -lt 67 ] && echo yes || echo no
    yes
    [root@linux Desktop]# [ 34 -ge 67 ] && echo yes || echo no
    no
    [root@linux Desktop]# [ 34 -le 67 ] && echo yes || echo no
    yes
    

    判断字符串及连接符

    命令 功能
    -z 字符串 判断字符串是否为空
    -n 字符串 判断字符串是否为非空
    字符串1 == 字符串2 判断字符串1是否和字符串2相等
    字符串1 != 字符串2 判断字符串1是否和字符串2不相等
    判断1 -a 判断2 逻辑与,判断1和判断2都成立,才为真
    判断1 -o 判断2 逻辑或,判断有一个成立即可,就为真
    !判断 逻辑非,使原式判断取反


    实验判断字符串
    [root@linux Desktop]# user1=jake;user2=Tom
    [root@linux Desktop]# [ -z user1 ] && echo yes || echo no
    no
    [root@linux Desktop]# [ -n user1 ] && echo yes || echo no
    yes
    [root@linux Desktop]# [ user1 == user2   ] && echo yes || echo no
    no
    [root@linux Desktop]# [ user1 != user2   ] && echo yes || echo no
    yes  
    
    提升
    查看111文件是否是目录文件,是则打印yes,反之no
    [root@linux 桌面]# ll 111
    总用量 0
    -rwxr-xr-x. 1 root root  0 7月   9 22:08 1.txt~
    drwxrwxr-x. 2 user user 31 7月   9 22:57 45
    [root@linux 桌面]# [ -d 111 ] && echo yes || echo no
    [root@linux 桌面]# yes
      
    
      
    [root@linux Desktop]# [ -z user1 -a -n user1 ]
    [root@linux Desktop]# echo $?
    1
    [root@linux Desktop]# [ -z user1 -o -n user1 ]
    [root@linux Desktop]# echo $?
    0
    




    每日语录:世界上最远的距离,不是爱,不是恨,而是熟悉的人,渐渐变得陌生。

    当你的才华配不上你的野心,努力的时候到了!
  • 相关阅读:
    QML中的信号和函数
    Hangfire入门(任务调度)
    js 批量设置css样式
    phpstudy配置伪静态的方法
    mysql 文件导入方法总结
    通过配置Mysql参数提高写入速度
    phpmyadmin导入数据库大小限制修改
    易语言入门之一 简介
    判断移动设备、触屏
    Compiler Error Message: CS0016: Could not write to output file 回绝访问
  • 原文地址:https://www.cnblogs.com/xwdzj/p/14001358.html
Copyright © 2020-2023  润新知