test命令可以用于检查某个条件是否成立,可以分为数值、字符串、文件、变量四个方面,其中文件的测试包括文件类型、文件权限的判断和两个文件之间的比较。

数值

测试标志 意义 示例
-eq 两数相等 test n1 -eq -n2,n1等于n2返回true。
-ne 两数不等 test n1 -ne -n2,n1不等于n2返回true。
-gt 前者大于后者 test n1 -gt -n2,n1大于n2返回true。
-lt 前者小于后者 test n1 -lt -n2,n1小于n2返回true。
-ge 前者大于等于后者 test n1 -ge -n2,n1大于等于n2返回true。
-le 前者小于等于后者 test n1 -le -n2,n1小于等于n2返回true。

字符串

测试标志 意义 示例
-z 字符串长度为0 test -z str1,str1长度为0,返回true。
-n、string 字符串长度不为0 test -n str2或test str2,str2长度不为0,返回true。
=、== 两字符串相等 test str1 = str2,str1与str2相等,返回true。
!= 两字符串不相等 test str1 != str2,str1与str2不相等,返回true。
< 比较字符串字典顺序 test str1 < str2,按照字典顺序str1在str2之前,返回true。
> 比较字符串字典顺序 test str1 > str2,按照字典顺序str1在str2之后,返回true。

文件

测试标志 意义 示例
-e、-a 文件名是否存在 test -e filename,存在文件名filename,返回true。
-f 文件名是否存在且为文件 test -f filename,存在文件名filename且为文件,返回true。
-d 文件名是否存在且为目录 test -d filename,存在文件名filename且为目录,返回true。
-b 文件名是否存在且为一个block device设备 test -b filename,存在文件名filename且为一个block device设备,返回true。
-c 文件名是否存在且为一个character device设备 test -c filename,存在文件名filename且为character device设备,返回true。
-S 文件名是否存在且为一个Socket文件 test -S filename,存在文件名filename且为一个Socket文件,返回true。
-p 文件名是否存在且为一个FIFO(pipe)文件 test -p filename,存在文件名filename且为FIFO(pipe)文件,返回true。
-L 文件名是否存在且为一个连接文件 test -L filename,存在文件名filename且为一个连接文件,返回true。
-r 文件名是否存在且具有“可读”权限 test -r filename,存在文件名filename且具有“可读”属性,返回true。
-w 文件名是否存在且具有“可写”权限 test -w filename,存在文件名filename且具有“可写”属性,返回true。
-x 文件名是否存在且具有“可执行”权限 test -x filename,存在文件名filename且具有“可执行”属性,返回true。
-u 文件名是否存在且具有“SUID”属性 test -u filename,存在文件名filename且具有“SUID”属性,返回true。
-g 文件名是否存在且具有“SGID”属性 test -g filename,存在文件名filename且具有“SGID”属性,返回true。
-k 文件名是否存在且具有“Sticky bit”属性 test -k filename,存在文件名filename且具有“Sticky bit”属性,返回true。
-s 文件名是否存在且为“非空白文件” test -s filename,存在文件名filename且为非空白文件,返回true。
-nt 前者是否比后者新(根据修改日期)

test filename1 -nt filename2,filename1比filename2新或者filename1存在filename2不存在,返回true。

-ot 前者是否比后者旧(根据修改日期) test filename1 -ot filename2,filename1比filename2旧或者filename2存在filename1不存在,返回true。
-ef 是否为同一文件,可用在硬链接上。判断两个文件是否指向同一个inode test filename1 --ef filename2,filename1与filename2为同一文件,返回true。
-h、-L 文件存在且是符号链接 test -h filename,存在文件名为filname且为符号链接,返回true。
-t 文件描述符打开并指向终端 test -t fd,如果文件描述符fd打开并指向终端,返回true。
-G 文件存在且属于有效组id test -G filename,存在文件名为filname,且属于有效组id,返回true。
-N 文件存在且在最后一次读取后有修改 test -N filename,存在文件名为filname,且在最后一次读取后有修改,返回true。
-O 文件存在且属于有效用户id test -O filename,存在文件名为filname,且属于有效用户id,返回true。

多重条件

测试标志 意义 示例
-a 两个条件同时成立 test -r filename -a -w filename,filename存在且同时具有读写权限,返回true。
-o 任何一个条件成立 test -r filename -o -w filename,filename存在且具有读或写权限,返回true。
! 取反 test ! -x filename ,filename存在且不具有执行权限,返回true。

变量

测试标志 意义 示例
-o shell内建命令set的-o选项是否启用  
-v shell变量是否已赋值  
-R

shell变量是否已赋值并且是名称引用

 

linux test命令测试标志相关推荐

  1. linux who命令测试,Linux中的who命令详细示例

    who是一个命令行实用程序,可打印当前登录用户的列表.它还可以显示当前的运行级别,上次系统引导的时间等.在本文中,我们解释展示了GNU coreutils软件包中捆绑的who命令用法示例. 如何使用w ...

  2. linux nc命令测试端口,Linux和Windows下的NC(Netcat)命令测试端口连通性

    1.Linux OS 环境下(以Centos为例),使用nc命令分别测试TCP和UDP端口连通性:css 安装方法:nginx 在客户端和服务器端分别安装nc工具,安装命令以下:web yum ins ...

  3. Linux arping命令测试IP地址冲突

    arping命令可以用来测试局域网各个主机之间的连通性,测试局域网中某个特定的IP地址是否已经被占用,进而可以有效检测局域网内的IP地址冲突问题. 如下图示例:arping -c 3 -f -D *. ...

  4. linux nc命令 测试网络连通性

    利用nc命令查看网络连通性, 有时候telnet可能没有安装 有时候ping 虽然能ping通,但是实际上还是连不上 这时候可以考虑用nc 拒绝连接 xxx.xx.xxx.xxx是ip -bash-4 ...

  5. linux killall 源代码,Linux基础命令---杀死进程killall

    killall killall可以根据名字来杀死进程,它会给指定名字的所有进程发送信息.如果没有指定信号名,则发送SIGTERM.信号可以通过名称(例如-HUP或-SIGHUP)或数字(例如-1)或选 ...

  6. 测试常用——linux 基础命令

    测试常用 的 linux 基础命令 1,查看服务器日志 vi 查看文件 (查找关键字:exception /exception  :  从上往下找,按n查找下一个关键字,按shift+n查找上一个关键 ...

  7. 渗透测试-Linux常用命令知识积累

    Linux常用命令知识积累 文章目录 Linux常用命令知识积累 前言 基本操作 关机 重启 查看系统内核信息 查看系统内核版本 查看当前用户环境变量 查看有几个逻辑cpu, 包括cpu型号 查看有几 ...

  8. Linux系统如何测试电脑性能,如何使用DD命令测试Linux磁盘的性能?

    Linux系统下DD命令是常用的命令之一,同时DD命令的使用范围也比较广泛.除了已知的可以用DD命令来复制文件外,还可以用DD命令来测试磁盘的性能.那么如何使用DD命令测试Linux磁盘的性能? 下面 ...

  9. linux dd 硬盘 脚本,如何使用dd命令测试Linux磁盘的读写速度

    为了测试Linux磁盘的读写速度,可使用dd命令,dd命令是一个非常使用的命令,可用于文件的拷贝,下面小编就给大家介绍了如何使用dd命令测试Linux磁盘的读写速度吧. 1.先熟悉两个特殊的设备: ( ...

最新文章

  1. https协议必须使用443端口吗_http、https、http2、websocket之间的关系
  2. 【MySQL】数据库2- MySQL表的增删改查(基础)
  3. vuex入门,详细的讲解
  4. No module named 'mxnet.gluon'
  5. php爬取ckplayer,CKplayer站外调用示例附最终效果
  6. SQL Server2000 未公开的存储过程
  7. linux计算机中文件意思,shell在计算机语言中一般是啥意思,比如在linux中
  8. 重要提醒!北京下周出行必看!十一假期出行高峰是哪天?
  9. 鸿蒙历程和路标图,华为鸿蒙OS:为生态而生,亦为生态所累
  10. CCF 2018-3-1跳一跳
  11. python基本函数归整
  12. AI能让全球车厂每年多赚2150亿美元 | 麦肯锡报告
  13. mybatis使用char类型字段查询oracle数据库时结果查询不到的问题
  14. HDU1164 Eddy's research I(解法二)【废除!!!】
  15. python数据存储系列教程——python操作sqlite数据库:连接、增删查改、指令执行
  16. 机器学习基础算法27-聚类实战
  17. 贪心算法及几个常用的例题
  18. python pyhook_python pyHook安装
  19. UTON NFT的到来将为摄影师带来全新的未来!
  20. 浙江移动2018暑期实习生经历

热门文章

  1. 20220530-动态规划算法及Needleman-Wunsch算法
  2. 安全狗再次入选中国数字安全百强报告
  3. Android开源的社交应用
  4. 使用python完成简单的批量信息发送
  5. 【C语言】学籍管理系统
  6. Ubuntu 16.04如何安装Cinnamon 3.0
  7. 公钥,私钥,数字签名,证书图解(转)
  8. BBED修改数据文件的SCN
  9. Snails 1.0正式发布
  10. OpenCV调试利器——Image Watch插件的安装和使用