加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

如何在Bash shell脚本中检查一个目录是否存在?

发布时间:2023-01-08 10:00:35 所属栏目:Unix 来源:互联网
导读: 那里有很好的解决方案,但最终每个脚本都会失败,如果你不在正确的目录中。因此,像这样的代码。
if [ -d "$LINK_OR_DIR" ]; then
if [ -L "$LINK_OR_DIR" ]; then
# It is a symlink!

那里有很好的解决方案,但最终每个脚本都会失败,如果你不在正确的目录中。因此,像这样的代码。

if [ -d "$LINK_OR_DIR" ]; then
if [ -L "$LINK_OR_DIR" ]; then
    # It is a symlink!
    # Symbolic link specific commands go here
    rm "$LINK_OR_DIR"
else
    # It's a directory!
    # Directory command goes here
    rmdir "$LINK_OR_DIR"
fi
fi

只有在执行时你在一个有子目录的目录中,而你恰好要检查这个子目录的情况下,才会成功执行。

我对最初的问题是这样理解的:要验证一个目录是否存在,而不管用户在文件系统中的位置如何。所以使用'find'命令可能会起到作用。

dir=" "
echo "Input directory name to search for:"
read dir
find $HOME -name $dir -type d

这个解决方案很好,因为它允许使用通配符unix路径简化,这是搜索文件/目录时的一个有用的功能。唯一的问题是,如果搜索的目录不存在,'find'命令将不会向打印任何东西(对我来说不是一个优雅的解决方案),而且将有一个零退出。也许有人可以对此进行改进。

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章