一尘不染

在Bash中的文件路径参数中获取最后一个目录名/文件名

linux

我正在尝试为SVN编写一个提交后钩子,该钩子托管在我们的开发服务器上。我的目标是尝试自动将已提交项目的副本检出到服务器上托管的目录。但是,我需要能够仅读取传递给脚本的目录字符串中的最后一个目录,以便签出到托管我们项目的同一子目录。

例如,如果我对项目“ example”进行SVN提交,则我的脚本将“ / usr / local / svn / repos /
example”作为其第一个参数。我只需要从字符串末尾得到“ example”,然后将其与另一个字符串连接起来,这样我就可以签出到“ / server /
root / example”并立即看到更改。


阅读 721

收藏
2020-06-03

共1个答案

一尘不染

basename 确实删除路径的目录前缀:

$ basename /usr/local/svn/repos/example
example
$ echo "/server/root/$(basename /usr/local/svn/repos/example)"
/server/root/example
2020-06-03