linux中如何去检查文件 ,看文件是否存在呢?
今天我们用到命令是test命令,这个命令最关键的作用就是用来检查/比较文件
目录
2.检查文件是否存在 (可以判断文件与目录是否存在 #存在为零 不存在非零)
10.检查 文件1 是否比 文件2 新 #这里对比的两个日期
关于test参数总览:
-d #检查文件是否存在且为目录
-e #检查文件是否存在
-f #检查文件是否存在且为文件
-r #检查文件是否存在且为可读
-w #检查文件是否可写
-x #检查文件是否存在且可执行
-s #检查文件是否存且不为空
-O #检查文件是否存在并且被当前用户拥有
-G #检查文件是否存在并且默认组为当前用户组
file1 -nt file2 #检查 文件1 是否比 文件2 新
file1 -ot file2 #检查 文件1 是否比 文件2 旧
file1 -ef file2 #检查 文件1 是否与 文件2 相同 是按i节点判断
详细演示:
## echo $? #返回上一条执行后的结果是否成功
如果返回值是零,就是执行成功;非零失败
“;”分号用法方式: 命令1 ; 命令2 用“;”号隔开每个命令, 每个命令按照从左到右的顺序,顺序执行, 彼此之间不关心是否失败, 所有命令都会执行。
1.检查文件是否存在且为目录
写法:
#判断一个文件是否存在并且为目录
test -d /shell ; echo $? #这里我shell那个目录已经建立好了,如果没有返回的值就是非零的数
运行结果:
结果为0 说明文件存在并且为目录 如果是非目录则会返回的值为非零
2.检查文件是否存在 (可以判断文件与目录是否存在 #存在为零 不存在非零)
写法:
test -e /shell/ ;echo $? #判断目录是否存在
test -e /shell/1.txt ;echo $? #判断文件是否存在
运行结果:
返回的结果为0表示存在
3.检查文件是否存在并且为文件
写法:
test -f /shell/1.txt ; echo $? #判断文件是否存在 并且为文件
运行结果:
零成功 ,非零失败
4.检查 文件是否存在且为可读
## ls -l 与 ll 是可以查看文件权限的,那么不用这两个命令的话 我们怎么去鉴别一个文件我是否有可读的权限呢?并且文件存在呢?
当前我的操作全是在root权限下进行所以我们先切换到普通用户去打一下命令
写法:
test -r /shell ; echo $? #判断文件是否为当前用户 可读
运行结果:
看到结果为非零,当前用户不可读
5.查看文件是否存在且为可写
写法:
test -w /shell ; echo $? #查看文件或目录 在当前用户下是否可写
运行结果: #当前我在普通用户下 没有写的权限
6.查看文件是否存在且为可执行 #可以判断命令
写法:
test -x /shell ; echo $? #判断文件或目录是否存在并且为可执行
运行结果:
判断命令:
7. 检查文件是否存在 且不为空 #重点
写法:
test -s /shell/1.txt ;echo $? #判断1.txt文件内是否有内容
运行结果:
结果可以看到 1.txt文件内是没有内容的 /shell目录下面是有内容的 ##这里注意 如果你 直接 echo > /shell/1.txt 返回的结果为0 因为echo是将一个空值输入到了1.txt文件内 所以 判断文件内是存在内容的
8.检查文件是否存在并且被当前用户拥有
写法:
test -O /shell ; ehco $? #检查文件/目录是否存在并且被当前用户拥有
运行结果
我用root权限创建的所以 可以判断是否是当前用户创建的 如果没有权限是无法修改文化或者目录的属主属组的,如果更改为当前用户的话 返回的结果就是0
9.检查文件是否存在并且默认组为当前用户组
写法:
test -G /shell ; echo $? #检查当前文件或者目录是否为当前用的组所拥有
运行结果:
与第8个意思一致
10.检查 文件1 是否比 文件2 新 #这里对比的两个日期
写法:
test 1.txt -nt 2.txt ; echo $? #判断1.txt是否比2.txt新
运行结果:
11.检查 文件1 是否比 文件2 旧 #对比的日期新旧
写法:
test 1.txt -ot 2.txt ; echo $? #判断1.txt是否比2.txt旧
运行结果:
12.检查 文件1 是否与 文件2 相同 是按i节点判断
写法:
test 1.txt -ef 2.txt ; echo $? #判断两个文件是否相同 查看i节点 ls -i + file
运行结果:
13.检查 文件1 是否与 文件2 相同 是按i节点判断
写法
test 1.txt -ef 2.txt ; echo $? #判断两个文件是否相同 是以i节点作为判断的
运行结果:
拓展:
如何查看文件的、权限、最近访问、最近更改、最近改动的时间,可以用stat命令