Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux父文件的父路径_Linux_File_Bash_Parent Child_Directory - Fatal编程技术网

Linux父文件的父路径

Linux父文件的父路径,linux,file,bash,parent-child,directory,Linux,File,Bash,Parent Child,Directory,也许这个问题看起来很愚蠢,但无论如何。我有一个脚本文件/local/bin/app1/script.sh,我需要知道它的父目录名bin。我知道我可以使用${0%/*}来确定父目录名。我不熟悉bash,有人能帮我找出父目录名吗?非常感谢。请再次使用此技巧: parent=${0%/*} grandparent=${parent%/*} 或者,让贝壳告诉你 ( cd ../.. ; pwd ) 只需再次应用此技巧: parent=${0%/*} grandparent=${parent%/*}

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

请再次使用此技巧:

parent=${0%/*}
grandparent=${parent%/*}
或者,让贝壳告诉你

( cd ../.. ; pwd )

只需再次应用此技巧:

parent=${0%/*}
grandparent=${parent%/*}
或者,让贝壳告诉你

( cd ../.. ; pwd )

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

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
kent$pwd
/tmp/bin/app
肯特$cat t.sh
#!/bin/bash
a=`dirname$0`
如果[$a=”.];然后
a=`pwd`
fi
当前=$a
echo“当前路径:$current
cd$当前
回显“家长的家长:”

awk-F'/'{print$(NF-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
kent$pwd
/tmp/bin/app
肯特$cat t.sh
#!/bin/bash
a=`dirname$0`
如果[$a=”.];然后
a=`pwd`
fi
当前=$a
echo“当前路径:$current
cd$当前
回显“家长的家长:”

awk-F'/'{print$(NF-1)}对我来说很好,我喜欢这一行解决方案。谢谢。对我来说效果很好,我喜欢这个单线解决方案。谢谢你。