从路径中提取目录

时间:2011-06-28 16:14:54

标签: string bash path

在我的脚本中,我需要我正在使用的文件的目录。例如,文件 = “stuff / backup / file.zip”。我需要一种从变量$file获取字符串“ stuff / backup / ”的方法。

5 个答案:

答案 0 :(得分:168)

dirname $file

是您正在寻找的

答案 1 :(得分:41)

dirname $file

将输出

stuff/backup

basename

相反
basename $file

会输出

file.zip

答案 2 :(得分:2)

像Urvin / LuFFy建议的那样使用${file%/*}在技术上会更好,因为您将不必依赖外部命令。要以相同的方式获取基本名称,可以执行${file##*/}。除非需要,否则不必使用外部命令。

file="/stuff/backup/file.zip"
filename=${1##*/}     # file.zip
directory=${1%/*}     # /stuff/backup

这种方式也将完全兼容POSIX。希望能帮助到你! :-)

答案 3 :(得分:1)

只需使用$ dirname /home/~username/stuff/backup/file.zip

即可

它将返回/home/~username/stuff/backup/

答案 4 :(得分:-1)

要从directorypath获得filepath

file="stuff/backup/file.zip"
dirPath=${file%/*}/
echo ${dirPath}