【问题标题】:How to avoid cd to a directory without access permission如何避免 cd 到没有访问权限的目录
【发布时间】:2013-01-08 18:46:18
【问题描述】:

我有一个数组变量,它包含一个文件夹中的所有目录。 我需要 cd 到 $array 中的每个目录。 bt 当它到达一个不可访问的目录时,程序停止。我怎样才能避免这种情况,以便我的循环简单地转到下一个目录。代码是

foreach dir ($array) 
  cd $dir
  echo "directory is $dir" 
cd - end

请帮忙!!

【问题讨论】:

    标签: linux bash unix csh


    【解决方案1】:

    只需测试 cd 是否有效。

    ( if cd $dir 2> /dev/null; then
       echo in directory $dir
       # Do other things
    fi )
    

    另外,请注意括号。这些会导致整个子句在子 shell 中运行,因此无需 cd 回到原始位置。

    【讨论】:

      【解决方案2】:

      如果我没记错的话,你可以使用类似的东西

      if [ -r ${dir} ]
      then
        echo "Have read access!"
      fi
      

      您可以使用-w 测试写入权限,使用-x 测试执行位。

      【讨论】:

      • 只有在文件所有者具有读取权限但我想检查它的组读取权限时才会回显消息。那怎么办?
      猜你喜欢
      • 2012-01-03
      • 1970-01-01
      • 2012-12-21
      • 2015-10-04
      • 2022-08-09
      • 2018-10-21
      • 2019-03-03
      • 2014-04-08
      • 1970-01-01
      相关资源
      最近更新 更多