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