代码之家  ›  专栏  ›  技术社区  ›  TJ L

在Bash的文件路径参数中获取last dirname/filename

  •  175
  • TJ L  · 技术社区  · 16 年前

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

    3 回复  |  直到 7 年前
        1
  •  387
  •   sth    16 年前

    basename 删除路径的目录前缀:

    $ basename /usr/local/svn/repos/example
    example
    $ echo "/server/root/$(basename /usr/local/svn/repos/example)"
    /server/root/example
    
        2
  •  112
  •   Captain Man Joachim Sauer    6 年前

    以下方法可用于获取路径名的任何路径:

    some_path=a/b/c
    echo $(basename $some_path)
    echo $(basename $(dirname $some_path))
    echo $(basename $(dirname $(dirname $some_path)))
    

    输出:

    c
    b
    a
    
        3
  •  78
  •   Dennis Williamson    16 年前

    basename

    subdir="/path/to/whatever/${1##*/}"