如何检查Bash中是否存在文件或目录


当前第2页 返回上一页

也可以使用不带if语句的test命令。仅当测试命令的退出状态为true时,才会执行&&运算符后的命令,

1

test -f /etc/resolv.conf && echo "$FILE exist"

1

[ -f /etc/resolv.conf ] && echo "$FILE exist"

1

[[ -f /etc/resolv.conf ] && echo "$FILE exist"

如果要在&&运算符之后运行一系列命令,只需将命令括在以“;”或“&&”分隔的大括号中即可。

1

[ -f /etc/resolv.conf ] && { echo "$FILE exist"; cp "$FILE" /tmp/; }

与&相反,||运算符后面的语句只在测试命令的退出状态为false时执行。

1

[ -f /etc/resolv.conf ] && echo "$FILE exist" || echo "$FILE does not exist"

如何检查目录是否存在?

-d运算符允许测试文件是否是目录。

例如,要检查/etc/docker目录是否存在,需要使用:

1

2

3

4

FILE=/etc/docker

if [ -d "$FILE" ]; then

    echo "$FILE is a directory"

fi

1

[ -d /etc/docker ] && echo "$FILE is a directory"

同样,也可以使用双括号[[而不是单个括号[。

如何检查文件是否不存在?

与许多其他语言类似,可以使用!(感叹号)逻辑非运算符来否定测试表达式:

1

2

3

4

FILE=/etc/docker

if [ ! -f "$FILE" ]; then

    echo "$FILE exist and it is a directory"

fi

与上述相同:

1

[ ! -f /etc/docker ] || echo "$FILE does not exist"

如何检查是否存在多个文件?

如果存在多个文件,可以使用-a(或&&with[])来测试,而不是使用复杂的嵌套if/else构造:

1

2

3

4

FILE=/etc/docker

if [ -f /etc/resolv.conf -a -f /etc/hosts ]; then

    echo "$FILE is a directory"

fi

1

2

3

4

FILE=/etc/docker

if [ -f /etc/resolv.conf && -f /etc/hosts ]; then

    echo "$FILE is a directory"

fi

不使用IF语句的等效变体:

1

[ -f /etc/resolv.conf -a -f /etc/hosts ] && echo "both files exist"

1

[[ -f /etc/resolv.conf && -f /etc/hosts ]] && echo "both files exist"

相关视频教程推荐:《Linux教程》

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上就是如何检查Bash中是否存在文件或目录的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

linux系统中的用户管理

确保安全组内不存在实例之后怎么删除一个安全组

如何在bash脚本中将密码传递给ssh/scp命令

启动bash shell有哪些方式?

linux系统引导流程

linux下apache重启的方法是什么

linux命令rmdir的用法总结

linux系统中的755权限是什么意思

linux安装oracle出现界面乱码

linux下编译程序找不到头文件

更多相关阅读请进入《bash》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...