测试linux系统某些文件属性之test命令

要检测系统上某些文件或相关属性时,我们可以使用test命令,比如:检查/root/ztj.txt文件是否存在,可以使用test -e /root/ztj.txt命令,不过执行结果不会显示任何信息,需配合$?或&&及||来展现具体结果

E.g:

[root@kibana ~]# test -e /root/ztj.txt  && echo "ztj.txt exist" || echo "ztj.txt not exist"
ztj.txt exist
[root@kibana ~]# 

其中,-e是测试一个“东西”是否存在,其它测试标志如下:

1.文件名“类型”检测(存在与否)

测试标志说明
-e“文件名”是否存在
-f“文件名”是否为文件
-d“文件名”是否为目录
-b“文件名”是否为一个块设备
-c“文件名”是否为一个字符设备
-p“文件名”是否为一个FIFO(管道)文件
-S“文件名”是否为一个套接字文件
-L“文件名”是否为一个链接文件

2.文件权限检测

测试标志说明
-r检测该文件名是否具有“可读”属性
-w检测该文件名是否具有“可写”属性
-x检测该文件名是否具有“可执行”属性
-u检测该文件名是否具有“SUID”属性
-g检测该文件名是否具有“SGID”属性
-k检测该文件名是否具有“Sticky bit”属性
-s检测该文件名是否为“非空白文件”

3.文件比较

测试标志说明
-nt(newer than)判断file1是否比file2新
-ot(older than)判断file1是否比file2旧
-ef判断file1与file2是否为同一文件,可用于判断硬链接,主要判断两个文件是否均指向同一个iNode

4.整数判断

测试标志说明
-eq两数值相等(equal)
-ne两数值不等(not equal)
-gtn1大于n2(greater than)
-ltn1小于n2(less than)
-gen1大于等于n2(greater than or equal)
-len1小于等于n2(less than or equal)

5.字符串判断

测试标志说明
test -z string判断字符串是否为0,若string为空字符串,则为TRUE
test -n string

判断字符串是否非为0,若string为空字符串,则为FALSE

其中:-n可省略

test str1 = str2判断str1是否等于str2,若相等,则返回true
test str1 != str2判断str1是否不等于str2,若不相等,则返回true

6.多重条件判断

测试标志说明
-a(and)两个条件同时成立。E.g:test -r file -a -x file,表示file同时具有r与x权限时,则回传true
-o(or)两个条件任何一个成立。E.g:test -r file -o -x file,表示file具有r或x权限时,则回传true
!条件求反,E.g:test ! -x file,当file不具有x时,则回传true

test样例:

[root@kibana ~]# cat test.sh 
#!/bin/bash#让用户输入文件名,并且判断用户是否真的输入了字符串
echo -e "The program will show you if the filename exists which input by you.\n\n"
read -p "Input a filename : " filename
test -z $filename && echo "You need to input a filename." && exit 0
#判断文件是否存在
test ! -e $filename && echo "The filename $filename does not exist" && exit 0
#判断文件类型与属性
test -f $filename && filetype="regular file"
test -d $filename && filetype="directory"
test -r $filename && perm="readable"
test -w $filename && perm="$perm writeable"
test -x $filename && perm="$perm executable"
#信息输出
echo -n "The filename $filename is a $filetype"
echo ",And the permission are $perm"
[root@kibana ~]# 
[root@kibana ~]# sh test.sh 
The program will show you if the filename exists which input by you.Input a filename : ztj.txt
The filename ztj.txt is a regular file,And the permission are readable writeable
[root@kibana ~]# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/713528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Find My扫地机器人|苹果Find My技术与机器人结合,智能防丢,全球定位

扫地机器人又称自动打扫机、智能吸尘、机器人吸尘器等,是智能家电的一种,能凭借人工智能,自动在房间内完成地板清理工作。一般采用刷扫和真空方式,将地面杂物先吸纳进入自身的垃圾收纳盒,从而完成地面清理的功能。现今…

[AutoSar]BSW_Com07 CAN报文接收流程的函数调用

目录 关键词平台说明一、背景二、顺序总览三、函数说明3.1 Com_RxIndication() 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector ,芯片厂商TI 英飞凌编程语言C,C编译器HighTec (GCC)…

贝叶斯定理与条件独立假设:朴素贝叶斯分类方法深度解读

今天给大家分享的是朴素贝叶斯算法,这个算法在实际使用中不是很多,因为现在很多算法已经发展的很好,性能上也比朴素贝叶斯算法的好很多,因此在实际中我们其实看到在实际应用中朴素贝叶斯算法的使用已经比较少,即使出现…

HotFix原理学习 IL2CPP 学习

原文链接:Unity 游戏用XLua的HotFix实现热更原理揭秘-CSDN博客 本文通过对XLua的HoxFix使用原理的研究揭示出来这样的一套方法。这个方法的 第一步:通过对C#的类与函数设置Hotfix标签。来标识需要支持热更的类和函数。第二步:生成函数连接器…

好视通视频会议系统存在任意文件读取漏洞复现 [附POC]

漏洞简介 好视通视频会议是由深圳市华视瑞通信息技术有限公司开发,其在国内率先推出了3G互联网视频会议,并成功应用于SAAS领域。 资产 FOFA:app"好视通-视频会议" POC GET /register/toDownload.do?fileName../../../../../../../../../.…

代码随想录-回溯算法

组合 //未剪枝 class Solution {List<List<Integer>> ans new ArrayList<>();Deque<Integer> path new LinkedList<>();public List<List<Integer>> combine(int n, int k) {backtracking(n, k, 1);return ans;}public void back…

MySql安全加固:可信IP地址访问控制 设置密码复杂度

MySql安全加固&#xff1a;可信IP地址访问控制 & 设置密码复杂度 1.1 可信IP地址访问控制1.2 设置密码复杂度 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1.1 可信IP地址访问控制 当您在创建用户时使用’%作为主机部分&#xff0c;…

【C语言】字符型变量and整型变量的类型转换

一、将字符型变量转换为整型变量 char c A; int i (int)c; 二、将整型变量转换成字符型变量 int i 65; char c (char)i;

Unity 实战一:这几年被广告刷屏的沙雕跑酷游戏

姐就是女王&#xff0c;功夫跑酷&#xff0c;拣枪干架跑酷等 核心不用说了吧&#xff1a; 就是一个人不断地跑&#xff0c;获取不同属性&#xff0c;判断是否过关 好的&#xff0c;以下是一篇基于Unity 开发简易版有障碍物的跑酷游戏的教程博客&#xff1a; 在这篇博客中&…

static在c语言中的作用

1、关键字static的作用是什么&#xff1f; 这个简单的问题很少有人能回答完全。在C语言中&#xff0c;关键字static有三个明显的作用&#xff1a; 1). 在函数体&#xff0c;一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外)&#xf…

Linux tload 命令教程:实时监控系统负载(附案例详解和注意事项)

Linux tload 命令介绍 tload 是一个用于监控系统负载的命令行工具。它以图形化的方式显示系统的负载情况&#xff0c;帮助你了解 CPU 和内存的使用情况。 Linux tload 命令适用的 Linux 版本 tload 在大多数 Linux 发行版中都可用。如果你在某些特定的 Linux 发行版上找不到…

java数据结构与算法刷题-----LeetCode437. 路径总和 III(前缀和必须掌握)

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 深度优先2. 前缀和 1. 深度优先 解题思路&#xff1a;时间复…

kibana7.17.7 将数据导出csv文件

配置kibana文件 首先先配置kibana.yaml内容如下&#xff0c;这里假设我的服务器ip地址为192.168.130.128&#xff0c;elasticsearch的ip地址为&#xff1a;192.168.130.129:9200&#xff0c;192.168.130.130:9200&#xff1a; server.host: "192.168.130.128" serv…

每日OJ题_分治归并③_力扣315. 计算右侧小于当前元素的个数

目录 315. 计算右侧小于当前元素的个数 解析代码 力扣315. 计算右侧小于当前元素的个数 315. 计算右侧小于当前元素的个数 难度 困难 给你一个整数数组 nums &#xff0c;按要求返回一个新数组 counts 。数组 counts 有该性质&#xff1a; counts[i] 的值是 nums[i] 右侧…

MongoDB 未授权访问

开启 MongoDB 服务时不添加任何参数时,默认是没有权限验证的,而且可以远程访问数据库&#xff0c; 登录的 用户可以通过默认端口无需密码对数据库进行增、删、改、查等任意高危操作。 防护 为 MongoDB 添 加 认 证 &#xff1a; 1)MongoDB 启动时添加–auth参数 2)给 MongoD…

Java 读写 ini ( 调用 Windows Api )

市面上读取 ini 的包都是 读取整个文件到内存中,再获取和修改值, 最后自己再调用保存文件, 这种方式在读取大文件的时候 非常的不友好. windows api 中有现成的高效方法 安装 jna-platform (里面封装了各个系统的 api ,直接用就行. 不用再手动写固定的函数定义) jna-platfor…

JPA常见异常 JPA可能抛出的异常

1、EntityNotFoundException&#xff08;实体不存在异常&#xff09;: 通过 JPA 查找一个不存在的实体。 2、NonUniqueResultException&#xff08;非唯一结果异常&#xff09;&#xff1a; 查询返回了多个结果&#xff0c;但期望只有一个结果。 3、TransactionRequiredExcep…

AutoSAR(基础入门篇)13.1-EB Tresos使用初探

目录 一、新建工程 二、添加和删除模块 三、界面 四、代码生成 1、直接生成代码

Mac 以SH脚本安装Arthas

SH脚本安装Aethas curl -L https://alibaba.github.io/arthas/install.sh | sh安装脚本说明 示例源文件&#xff1a; #! /bin/bash# temp file of as.sh TEMP_ARTHAS_FILE"./as.sh.$$"# target file of as.sh TARGET_ARTHAS_FILE"./as.sh"# update timeo…

微服务中的Feign:优雅实现远程调用的秘密武器(一)

本系列文章简介&#xff1a; 本系列文章将深入探讨Feign的特点、原理以及在微服务中的应用场景&#xff0c;帮助读者更好地理解和使用这个优秀的远程调用工具。无论您是初学者还是有经验的开发人员&#xff0c;本文都将为您揭示Feign的秘密&#xff0c;并带您一起走进微服务的世…