从路径中提取目录

在我的脚本,我需要的 目录的文件,我正在工作。例如,文件 = 东西/备份/文件压缩。我需要一种从变量 $file中获取字符串“ 东西/备份/”的方法。

95314 次浏览
dirname $file

就是你要找的

dirname $file

将输出

stuff/backup

basename相反:

basename $file

会输出

file.zip

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

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

filepath获取 directorypath:

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

像 Urvin/LuFFy 建议的那样使用 ${file%/*}在技术上更好,因为你不需要依赖外部命令。要获得基名,可以使用与 ${file##*/}相同的方法。除非需要,否则不必使用外部命令。

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

这种方式也完全兼容 POSIX。希望它能有所帮助! : -)