2012-07-27 3 views
0

Peut-être cette question semble stupide, mais de toute façon. J'ai un fichier de script /local/bin/app1/script.sh et j'ai besoin de connaître le nom de son répertoire parent parents bin. Je sais que je peux utiliser ${0%/*} pour déterminer le nom du répertoire parent. Je ne suis pas familier avec bash donc quelqu'un pourrait m'aider s'il vous plaît à comprendre le nom de l'annuaire parent parents? Merci beaucoup.Linux parents parent chemin d'accès au fichier

Répondre

5

Il suffit d'appliquer l'astuce une fois de plus:

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

Ou, laissez le shell vous dire

(cd ../.. ; pwd) 
+0

Fonctionne bien pour moi et j'aime cette solution d'une ligne. Merci. –

1

vous donner un exemple, elle pourra être utile:

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 

il vous renverra "bin".

Questions connexes