2015-03-09 3 views
0

Есть ли способ получить базовый каталог из полного пути.
Например, у меня есть/opt/mw/apache/etc
И мне нужно получить/opt
Есть ли какая-нибудь команда для этого?

спасибоПуть к базовому каталогу

+0

К сожалению, я должен добавить новый вопрос. Мне нужно скопировать мой скрипт и получить базу каталога скриптов. Например/home/ui/mw_share/script/bin или/opt/mw/mw_share/script/bin. Мне нужно получить/*/*/mw_share. – radicaled

ответ

1

Вы можете попробовать следующее.

$ s='/opt/mw/apache/etc' 
$ if [[ $s =~ ^(/[^/]*).* ]]; then echo ${BASH_REMATCH[1]}; fi 
/opt 
1

Использование AWK:

echo '/opt/mw/apache/etc' | awk -F"/" '{print "/"$2}' 

Это будет разделить строку на «/», то он будет печатать «/», соединяемого со вторым маркером от раскола, который является «отказаться».

1

Просто для улыбок, вот еще один способ:

basedir() { 
    dir=$1 
    while [ $(dirname $dir) != "/" ]; do 
     dir=$(dirname $dir) 
    done 
    echo $dir 
} 

> basedir /opt/mw/apache/etc 
> /opt 
Смежные вопросы