【问题标题】:Linux parents parent path to fileLinux 父文件的父路径
【发布时间】:2012-07-26 02:33:35
【问题描述】:

这个问题可能看起来很愚蠢,但无论如何。我有一个脚本文件/local/bin/app1/script.sh,我需要知道它的父目录名称bin。我知道我可以使用${0%/*} 来确定父目录名称。我不熟悉 bash 所以有人可以帮我找出父母的父目录名称吗?非常感谢。

【问题讨论】:

    标签: linux file bash parent-child directory


    【解决方案1】:

    举个例子,希望对你有帮助:

    kent$  pwd
    /tmp/bin/app
    
    kent$  cat t.sh
    #!/bin/bash
    a=`dirname $0`
    if [ $a = '.' ];then
       a=`pwd`
    fi
    current=$a
    echo "current path:"$current
    cd $current
    echo "parents' parent:"
    awk -F'/' '{print $(NF-1)}' <<<$current
    
    kent$  ./t.sh         
    current path:/tmp/bin/app
    parents' parent:
    bin
    
    kent$  cd /usr
    
    kent$  pwd
    /usr
    
    kent$  /tmp/bin/app/t.sh
    current path:/tmp/bin/app
    parents' parent:
    bin
    

    所以它会返回“bin”。

    【讨论】:

      【解决方案2】:

      再次应用这个技巧:

      parent=${0%/*}
      grandparent=${parent%/*}
      

      或者,让外壳告诉你

      ( cd ../.. ; pwd )
      

      【讨论】:

      • 对我很好,我喜欢这种单线解决方案。谢谢你。
      猜你喜欢
      • 2020-11-27
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 2014-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多