在我的脚本中,我需要我正在使用的文件的目录。例如,文件 = “stuff / backup / file.zip”。我需要一种从变量$file
获取字符串“ stuff / backup / ”的方法。
答案 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}