是否有专门设计用于操作文件路径字符串的命令,例如更改 foo/bar/baz -> bar/baz?

是否有专门设计用于操作文件路径字符串的命令,例如更改 foo/bar/baz -> bar/baz?

我正在尝试修改 git 项目子目录的输出,git diff --name-only使其仅包含当前目录中的相对路径。我知道如何使用sed/执行此操作grep,但我想知道是否有专门设计用于通过以下方式操作文件路径字符串的 cli 命令:

  1. 消除n从路径开头开始的部分:

    /foo/bar/baz->bar/baz

  2. 消除n从路径末端开始的部分:

    /foo/bar/baz->/foo/bar/

  3. 比较两个路径并创建相对于当前路径的路径:

    foo/bar/baz相对于foo/qux->../bar/baz

  4. (可选)从路径中删除除最后一部分之外的所有内容(basename执行此操作):

    /foo/bar/baz.ex->baz.ex

  5. (可选)仅从路径中删除最后一部分(dirname执行此操作):

    foo/…/bar/baz.ex->foo/…/bar/

相关内容