📌  相关文章
📜  bash 从文件名获取路径 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:29:34.900000             🧑  作者: Mango

Bash 从文件名获取路径 - Shell-Bash

在 Shell 编程中,有时需要从一个文件名中获取它所在的路径,这可以使用 BASH 的内置变量实现。

解决方案

在 Bash 中,可以使用 ${var%pattern}${var%%pattern} 来删除变量 $var 中字符串中匹配 pattern 的最小和最大前缀。

${var%pattern} 只会删除最小前缀,而 ${var%%pattern} 则会删除所有匹配的前缀。

因此,如果想要从一个文件名中获取它所在的路径,可以使用:

path=${file%/*}

这将会删除 $file 字符串中的最小的 / 及其后面的字符,从而得到其所在的路径。

下面是一个完整的 Bash 脚本示例:

#!/bin/bash

file="/path/to/myfile.txt"
path=${file%/*}

echo "File: $file"
echo "Path: $path"

这将会输出:

File: /path/to/myfile.txt
Path: /path/to
注意事项

如果 $file 字符串中没有 /,则 $path 的值将会是空字符串。

总结

使用 ${var%pattern}${var%%pattern} 可以方便地从 Bash 字符串中获取路径。在实际使用中,需要注意一些细节,例如当文件名中不包含 / 时,路径将会是空字符串。