test命令:判断文件类型,判断文件权限,判段表达式,判断字符串,判断整数大小/相等,判断两文件新旧,inode号是否一样
判断文件类型
命令 |
功能 |
-b 文件 |
判断是 块设备文件 |
-c 文件 |
判断是 字符设备文件 |
-d 文件 |
判断是 目录文件 |
-f 文件 |
判断是 普通文件 |
-L 文件 |
判断是 符号链接文件 |
-p 文件 |
判断是 管道文件 |
-e 文件 |
判断文件是否存在 |
-s 文件 |
判断文件内容是否为空 |
-S 文件 |
判断文件是否为套接字文件 |
注:该命令得配合 echo $? 注:test -参数 = [ -参数 文件名 ] |
|
查看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
查看文件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
判断文件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
查看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
查看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
查看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号一致,从而判断硬链接 |
查看文件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
查看文件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
每日语录:世界上最远的距离,不是爱,不是恨,而是熟悉的人,渐渐变得陌生。