【Linux】Shell判断文件文件夹是否存在

网友投稿 1757 2022-09-07

【Linux】Shell判断文件文件夹是否存在

【Linux】Shell判断文件文件夹是否存在

文件比较符

-e 判断对象是否存在-d 判断对象是否存在,并且为目录-f 判断对象是否存在,并且为常规文件-L 判断对象是否存在,并且为符号链接-h 判断对象是否存在,并且为软链接-s 判断对象是否存在,并且长度不为0-r 判断对象是否存在,并且可读-w 判断对象是否存在,并且可写-x 判断对象是否存在,并且可执行-O 判断对象是否存在,并且属于当前用户-G 判断对象是否存在,并且属于当前用户组-nt 判断file1是否比file2新 [ "/data/file1" -nt "/data/file2" ]-ot 判断file1是否比file2旧 [ "/data/file1" -ot "/data/file2"

文件夹不存在则创建

if [ ! -d "/data/" ];thenmkdir /dataelseecho "文件夹已经存在"fi

文件存在则删除

if [ ! -f "/data/filename" ];thenecho "文件不存在"elserm -f /data/filenamefi

判断文件夹是否存在

if [ -d "/data/" ];thenecho "文件夹存在"elseecho "文件夹不存在"fi

判断文件是否存在

if [ -f "/data/filename" ];thenecho "文件存在"elseecho "文件不存在"fi

#shell判断文件夹是否存在

#如果文件夹不存在,创建文件夹if [ ! -d "/myfolder" ]; thenmkdir /myfolderfi

#shell判断文件,目录是否存在或者具有权限

folder="/var/-x 参数判断 $folder 是否存在并且是否具有可执行权限if [ ! -x "$folder"]; then mkdir "$folder"fi

# -d 参数判断 $folder 是否存在if [ ! -d "$folder"]; then mkdir "$folder"fi

# -f 参数判断 $file 是否存在if [ ! -f "$file" ]; then touch "$file"fi

# -n 判断一个变量是否有值if [ ! -n "$var" ]; then echo "$var is empty" exit 0fi

# 判断两个变量是否相等if [ "$var1" = "$var2" ]; then echo '$var1 eq $var2'else echo '$var1 not eq $var2'fi

#!/bin/sh #测试各种字符串比较操作。#shell中对变量的值添加单引号,爽引号和不添加的区别:对类型来说是无关的,即不是添加了引号就变成了字符串类型,#单引号不对相关量进行替换,如不对$符号解释成变量引用,从而用对应变量的值替代,双引号则会进行替代#author:tenfyguo A="$1"B="$2" echo "输入的原始值:A=$A,B=$B" #判断字符串是否相等if [ "$A" = "$B" ];thenecho "[ = ]"fi #判断字符串是否相等,与上面的=等价if [ "$A" == "$B" ];thenecho "[ == ]"fi #注意:==的功能在[[]]和[]中的行为是不同的,如下 #如果$a以”a”开头(模式匹配)那么将为true if [[ "$A" == a* ]];thenecho "[[ ==a* ]]"fi #如果$a等于a*(字符匹配),那么结果为trueif [[ "$A" == "a*" ]];thenecho "==/"a*/""fi #File globbing(通配) 和word splitting将会发生, 此时的a*会自动匹配到对应的当前以a开头的文件#如在当前的目录中有个文件:add_crontab.sh,则下面会输出ok#if [ "add_crontab.sh" == a* ];then #echo "ok"#fiif [ "$A" == a* ];thenecho "[ ==a* ]"fi #如果$a等于a*(字符匹配),那么结果为trueif [ "$A" == "a*" ];thenecho "==/"a*/""fi #字符串不相等if [ "$A" != "$B" ];thenecho "[ != ]"fi #字符串不相等if [[ "$A" != "$B" ]];thenecho "[[ != ]]"fi #字符串不为空,长度不为0if [ -n "$A" ];thenecho "[ -n ]"fi #字符串为空.就是长度为0.if [ -z "$A" ];thenecho "[ -z ]"fi #需要转义<,否则认为是一个重定向符号if [ $A /< $B ];thenecho "[ < ]" fi if [[ $A < $B ]];thenecho "[[ < ]]" fi #需要转义>,否则认为是一个重定向符号if [ $A /> $B ];thenecho "[ > ]" fi if [[ $A > $B ]];thenecho "[[ > ]]" fi

待續...

赠人玫瑰 手留余香

我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:DL:深度学习模型优化之模型训练技巧总结之适时自动调整学习率实现代码
下一篇:Yii CUploadedFile带验证的多文件上传
相关文章

 发表评论

暂时没有评论,来抢沙发吧~