在我的脚本中,我需要正在使用的文件的directory。例如,file=“stuff/backup/file.zip”。我需要一种方法从变量 $file
获取字符串“
stuff/backup/”。
dirname -- "$file";
就是您要找的东西
dirname $file
将输出
stuff/backup
与
basename
相反:
basename $file
会输出
file.zip
像 Urvin/LuFFy 建议的那样使用
${file%/*}
在技术上更好,因为你不会依赖外部命令。要以相同的方式获取基本名称,您可以执行 ${file##*/}
。除非需要,否则没有必要使用外部命令。
file="/stuff/backup/file.zip"
filename=${1##*/} # file.zip
directory=${1%/*} # /stuff/backup
通过这种方式,它也完全符合 POSIX 标准。希望能帮助到你! :-)
为了从
directorypath
获取 filepath
:
file="stuff/backup/file.zip"
dirPath=${file%/*}/
echo ${dirPath}
只需使用
$ dirname /home/~username/stuff/backup/file.zip
会回来的
/home/~username/stuff/backup/