Shell 判断文件夹或文件是否存在

myccc 2020-09-24

1.判断是否存在

判断文件夹是否存在
if  [ -d "/data/" ];then
  echo  "文件夹存在"
else
  echo  "文件夹不存在"
fi
判断文件是否存在
if  [ -f  "/data/filename" ];then
  echo  "文件存在"
else
  echo  "文件不存在"
fi

2.应用

文件夹不存在则创建
if  [ ! -d "/data/" ];then
  mkdir  /data
  echo  "文件夹已创建"
fi

文件存在则删除

if  [ ! -f "/data/filename" ];then
  echo  "文件不存在"
else
  rm -rf  /data/filename
fi

3.各种比较符

-e filename  如果 filename 存在,则为真  [ -e /var/log/syslog ]
-d filename  如果 filename 为目录,则为真  [ -d /tmp/mydir ]
-f filename  如果 filename 为常规文件,则为真  [ -f /usr/bin/grep ]
-L filename  如果 filename 为符号链接,则为真  [ -L /usr/bin/grep ]
-r filename  如果 filename 可读,则为真  [ -r /var/log/syslog ]
-w filename  如果 filename 可写,则为真  [ -w /var/mytmp.txt ]
-x filename  如果 filename 可执行,则为真  [ -L /usr/bin/grep ]
filename1-nt filename2  如果 filename1 比 filename2 新,则为真  [ /tmp/install/etc/services -nt /etc/services ]
filename1-ot filename2  如果 filename1 比 filename2 旧,则为真  [ /boot/bzImage -ot arch/i386/boot/bzImage ]

相关推荐