前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >20.6 if文件目录属性判断

20.6 if文件目录属性判断

作者头像
运维小白
发布2022-01-06 14:06:46
5340
发布2022-01-06 14:06:46
举报
文章被收录于专栏:运维小白运维小白

if文件目录属性判断

  • if 判断文件、目录属性
    • [ -f file ]判断是否是普通文件,且存在
    • [ -d file ] 判断是否是目录,且存在
    • [ -e file ] 判断文件或目录是否存在
    • [ -r file ] 判断文件是否可读
    • [ -w file ] 判断文件是否可写
    • [ -x file ] 判断文件是否可执行

文件目录属性判断

  • if 判断文件、目录属性
    • [ -f file ]判断是否是普通文件,且存在
代码语言:javascript
复制
[root@hf-01 shell]# vim file1.sh
[root@hf-01 shell]# cat file1.sh 
#! /bin/bash
f="/tmp/hanfeng"
if [ -f $f ]
then 
	echo $f exist
else
	touch $f
fi
[root@hf-01 shell]# sh -x file1.sh  第一次执行,会创建该文件
+ f=/tmp/hanfeng
+ '[' -f /tmp/hanfeng ']'
+ touch /tmp/hanfeng
[root@hf-01 shell]# sh -x file1.sh        第二次执行,会提示该文件已存在
+ f=/tmp/hanfeng
+ '[' -f /tmp/hanfeng ']'
+ echo /tmp/hanfeng exist
/tmp/hanfeng exist
[root@hf-01 shell]#
  • if 判断文件、目录属性
    • [ -d file ] 判断是否是目录,且存在
代码语言:javascript
复制
[root@hf-01 shell]# vim file2.sh 
[root@hf-01 shell]# cat !$
cat file2.sh
#! /bin/bash
f="/tmp/hanfeng"
if [ -d $f ]
then 
	echo $f exist
else
	mkdir $f
fi
[root@hf-01 shell]# sh -x file2.sh
+ f=/tmp/hanfeng
+ '[' -d /tmp/hanfeng ']'
+ mkdir /tmp/hanfeng
[root@hf-01 shell]# 
  • if 判断文件、目录属性
    • [ -e file ] 判断文件或目录是否存在
  • 目录和文件都可以touch 的,touch的目的是 如果这个文件或目录不存在,它会创建这个文件,如果这个文件或目录存在了,在touch 就会更改这个文件的三个 time
代码语言:javascript
复制
[root@hf-01 shell]# vim file2.sh 
[root@hf-01 shell]# sh -x file2.sh
+ f=/tmp/hanfeng
+ '[' -e /tmp/hanfeng ']'
+ echo /tmp/hanfeng exist
/tmp/hanfeng exist
[root@hf-01 shell]# 
  • if 判断文件、目录属性
    • [ -r file ] 判断文件是否可读
代码语言:javascript
复制
[root@hf-01 shell]# cat file2.sh 
#! /bin/bash
f="/tmp/hanfeng"
if [ -r $f ]
then 
	echo $f readable
fi
[root@hf-01 shell]# sh file2.sh    会看到文件可读的
/tmp/hanfeng readable
[root@hf-01 shell]# 
  • if 判断文件、目录属性
    • [ -w file ] 判断文件是否可写
  • 去判断是否刻度可写,就判断执行shell脚本的当前用户
代码语言:javascript
复制
[root@hf-01 shell]# cat file2.sh 
#! /bin/bash
f="/tmp/hanfeng"
if [ -w $f ]
then 
	echo $f writeable
fi
[root@hf-01 shell]# sh file2.sh
/tmp/hanfeng writeable
[root@hf-01 shell]# 
  • if 判断文件、目录属性
    • [ -x file ] 判断文件是否可执行
代码语言:javascript
复制
[root@hf-01 shell]# cat file2.sh 
#! /bin/bash
f="/tmp/hanfeng"
if [ -x $f ]
then 
	echo $f exeable
fi
[root@hf-01 shell]# sh file2.sh
/tmp/hanfeng exeable

常用案例

  • 并且 &&
代码语言:javascript
复制
f="/tmp/aminglinux"
[ -f $f ] && rm -f $f     //前一条命令执行成功才会继续执行之后的命令
等同于下面的表达方式
if [ -f $f ]     
then
      rm -rf $f
fi
  • 或者 ||
代码语言:javascript
复制
f="/tmp/aminglinux"
[ -f $f ] || touch $f    //前面命令不成功时,执行后面的命令
if [ ! -f $f ]        //  “!”表示了如果这条命令不成功,就往下执行
then
      touch $f
fi
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/02/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • if文件目录属性判断
  • 文件目录属性判断
    • 常用案例
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档