Vas*_*kov 2 linux bash shell sh
如何获取文件的父目录?
我希望它对所有类型的名称都是安全的:
.
..
path/to/my/file
/absolute/path/to/my/file
'-rf --no-preserve-root whatever'/test.zip
(symbolic links)
`'"`'{(})
Run Code Online (Sandbox Code Playgroud)
我更感兴趣的是获取文件系统上的规范位置,而不是遍历文件名中指定的路径.
请注意,这个问题有类似的问题,但没有一个关注正确性,相对/绝对路径和"不安全"名称:
[1] bash获取当前目录的父目录
[2] 检索脚本的父目录
[3] bash文件路径到文件的父目录
真正安全的解决方案:
parent_dir="$(dirname -- "$(realpath -- "$file_name")")"
Run Code Online (Sandbox Code Playgroud)
如果您的系统没有,realpath但确实有readlink,这应该有效:
parent_dir="$(dirname -- "$(readlink -f -- "$file_name")")"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6014 次 |
| 最近记录: |