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)}对我来说很好,我喜欢这一行解决方案。谢谢。对我来说效果很好,我喜欢这个单线解决方案。谢谢你。