shell脚本判断文件或文件夹是否存在,和if后面带的参数的解释,与判断多个文件与文件建是否存在

写在前文,shell脚本有时候报错一些奇奇怪怪的错误,在检查这些错误之前,先排查一下编码格式

在编辑模式下set ff 查看编码格式是不是unix

1.判断文件夹是否存在 -d 判断当前文件夹是否存在 else 不存在

if [ -d "/root/shellTest1" ];then
echo "文件夹已经存在"
else
echo "文件夹不存在"
mkdir "/root/shellTest1"
fi

2.判断文件是否存在 -f 判断当前文件是否存在

if [ -f "/root/a.txt" ];then
echo "文件已经存在"
else
echo "文件不存在"
mkdir "/root/a.txt"
fi

-d和-f都表示存在的话,如果表示相反意思的话可以通过加上!来反转意思if [ ! -d "/root/a.txt" ];then

注意:空格不能去掉

-e 判断对象是否存在

-d 判断对象是否存在,并且为目录

-f 判断对象是否存在,并且为常规文件

-L 判断对象是否存在,并且为符号链接

-h 判断对象是否存在,并且为软链接

-s 判断对象是否存在,并且长度不为0

-r 判断对象是否存在,并且可读

-w 判断对象是否存在,并且可写

-n 判断一个变量是否是否有值

-x 判断对象是否存在,并且可执行

-O 判断对象是否存在,并且属于当前用户

-G 判断对象是否存在,并且属于当前用户组

-nt 判断file1是否比file2新  [ "/data/file1" -nt "/data/file2" ]

-ot 判断file1是否比file2旧  [ "/data/file1" -ot "/data/file2" ]

-------------------------------------------------20210110 更新多个目录是否存在

3、判断多个目录是否都存在

#!/bin/bash
if [ -d "/opt/softwares" -o -d "/opt/etc" ]; then
   echo "两个文件夹都存在"
else
   echo "两个文件夹不是都存在"
fi

3、判断多个文件是否都存在

#!/bin/bash
if [ -f "/root/a.sh" -a -f "/root/a.txt" ]; then
   echo "两个文件都存在"
else
   echo "两个文件不是都存在"
fi

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值