【发布时间】:2012-07-26 02:33:35
【问题描述】:
这个问题可能看起来很愚蠢,但无论如何。我有一个脚本文件/local/bin/app1/script.sh,我需要知道它的父目录名称bin。我知道我可以使用${0%/*} 来确定父目录名称。我不熟悉 bash 所以有人可以帮我找出父母的父目录名称吗?非常感谢。
【问题讨论】:
标签: linux file bash parent-child directory
这个问题可能看起来很愚蠢,但无论如何。我有一个脚本文件/local/bin/app1/script.sh,我需要知道它的父目录名称bin。我知道我可以使用${0%/*} 来确定父目录名称。我不熟悉 bash 所以有人可以帮我找出父母的父目录名称吗?非常感谢。
【问题讨论】:
标签: linux file bash parent-child directory
举个例子,希望对你有帮助:
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”。
【讨论】:
再次应用这个技巧:
parent=${0%/*}
grandparent=${parent%/*}
或者,让外壳告诉你
( cd ../.. ; pwd )
【讨论】: