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




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

posted @ 2020-11-18 18:11  加油酱  阅读(39)  评论(0编辑  收藏  举报