Unix 在符号链接中获取最终目录名称
Unix get final directory name in a symlink
我在一个充满版本的目录中有符号链接,每个版本都指向一个特定的版本。
文件结构如下所示:
- /path/to/stuff/v1
- /path/to/stuff/v1.1
- /path/to/stuff/v2
- /path/to/stuff/v3
- /path/to/stuff/A -> /path/to/stuff/v1.1
- /path/to/stuff/B -> /path/to/stuff/v3
我需要一种方法来仅从特定符号链接获取版本号(即对于 /path/to/stuff/A 我只想要“v1.1”)。
readlink获取整个路径:readlink /path/to/stuff/A = /path/to/stuff/v1.1
我搜索了其他问题,但我发现还没有任何问题满足这些确切的要求
您可以使用 basename
和 命令
substitution(在所有 POSIX shell 中可用,不仅在 Bash 中可用):
$ basename "$(readlink /path/to/stuff/A)"
v1.1
或rev
+ cut
:
$ readlink /path/to/stuff/A | rev | cut -d/ -f1 | rev
v1.1
我在一个充满版本的目录中有符号链接,每个版本都指向一个特定的版本。 文件结构如下所示:
- /path/to/stuff/v1
- /path/to/stuff/v1.1
- /path/to/stuff/v2
- /path/to/stuff/v3
- /path/to/stuff/A -> /path/to/stuff/v1.1
- /path/to/stuff/B -> /path/to/stuff/v3
我需要一种方法来仅从特定符号链接获取版本号(即对于 /path/to/stuff/A 我只想要“v1.1”)。
readlink获取整个路径:readlink /path/to/stuff/A = /path/to/stuff/v1.1
我搜索了其他问题,但我发现还没有任何问题满足这些确切的要求
您可以使用 basename
和 命令
substitution(在所有 POSIX shell 中可用,不仅在 Bash 中可用):
$ basename "$(readlink /path/to/stuff/A)"
v1.1
或rev
+ cut
:
$ readlink /path/to/stuff/A | rev | cut -d/ -f1 | rev
v1.1