基本目录路径
Base directory path
有什么方法可以从完整路径获取基本目录。
例如,我有 /opt/mw/apache/etc
我需要得到 /opt
有什么命令可以做到吗?
谢谢
您可以试试下面的方法。
$ s='/opt/mw/apache/etc'
$ if [[ $s =~ ^(/[^/]*).* ]]; then echo ${BASH_REMATCH[1]}; fi
/opt
使用 awk:
echo '/opt/mw/apache/etc' | awk -F"/" '{print "/"}'
这将用“/”拆分字符串,然后打印“/”与拆分中的第二个标记连接,即 "opt"。
只是为了笑,这是另一种方式:
basedir() {
dir=
while [ $(dirname $dir) != "/" ]; do
dir=$(dirname $dir)
done
echo $dir
}
> basedir /opt/mw/apache/etc
> /opt
有什么方法可以从完整路径获取基本目录。
例如,我有 /opt/mw/apache/etc
我需要得到 /opt
有什么命令可以做到吗?
谢谢
您可以试试下面的方法。
$ s='/opt/mw/apache/etc'
$ if [[ $s =~ ^(/[^/]*).* ]]; then echo ${BASH_REMATCH[1]}; fi
/opt
使用 awk:
echo '/opt/mw/apache/etc' | awk -F"/" '{print "/"}'
这将用“/”拆分字符串,然后打印“/”与拆分中的第二个标记连接,即 "opt"。
只是为了笑,这是另一种方式:
basedir() {
dir=
while [ $(dirname $dir) != "/" ]; do
dir=$(dirname $dir)
done
echo $dir
}
> basedir /opt/mw/apache/etc
> /opt