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

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

发布时间:2023-02-03 14:50:49 所属栏目:Unix 来源:
导读:  那里有很好的解决方案,但最终每个脚本都会失败,如果你不在正确的目录中。因此,像这样的代码。

  if [ -d "$LINK_OR_DIR" ]; then

  if [ -L "$LINK_OR_DIR" ]; then

   # It is a symli
  那里有很好的解决方案,但最终每个脚本都会失败,如果你不在正确的目录中。因此,像这样的代码。
 
  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'命令将不会向打印任何东西(对我来说不是一个优雅的解决方案),而且将有一个零退出。也许有人可以对此进行改进。
 
 

(编辑:百客网 - 百科网)

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

    推荐文章