Bash中如何判断文件、文件夹是否存在?
嘻嘻发布于2023-10-09
最后更新于2023年6月21日
浏览在bash中经常会碰见文件或者目录是否存在的场景,只有当文件目录存在,某些特定业务处理才能正常的流转,所以对于一个经常使用bash的人来说,掌握这些常用bash很重要。
文件是否存在
bash中可以使用-e
参数来判断一个文件或者文件夹是否存在。举例如下:
判断文件是否存在
#!/bin/bash
if [ -e "test.txt" ]; then
echo "文件存在"
else
echo "文件不存在"
fi
上述代码先使用了-e
参数判断了文件test.txt
是否存在,如果文件存在,则输出“文件存在”,否则输出“文件不存在”。
判断文件夹是否存在
#!/bin/bash
if [ -e "/home/user" ]; then
echo "文件夹存在"
else
echo "文件夹不存在"
fi
与判断文件是否存在类似,上述代码使用了-e
参数来判断文件夹/home/user
是否存在。如果文件夹存在,则输出“文件夹存在”,否则输出“文件夹不存在”。
需要注意的是,如果使用-e
参数进行文件夹存在性判断时,实际上只是判断了目录是否存在而不是判断它是否是一个目录,这时可以使用-d
参数来判断一个目录是否存在。
目录是否存在
好的,如果需要判断一个目录是否存在,可以使用-d
参数。举例如下:
#!/bin/bash
if [ -d "/home/user" ]; then
echo "目录存在"
else
echo "目录不存在"
fi
上述代码使用了-d
参数来判断目录/home/user
是否存在。如果目录存在,则输出“目录存在”,否则输出“目录不存在”。注意,使用-d
参数时,要保证对应路径处实际上存在一个目录,否则会报错。