56

我试图"abc.txt"摆脱/this/is/could/be/any/path/abc.txt使用 Unix 命令。注意/this/is/could/be/any/path是动态的。

任何的想法?

4

4 回答 4

81

bash

path=/this/is/could/be/any/path/abc.txt

如果您的路径中有空格,请将其包装在"

path="/this/is/could/be/any/path/a b c.txt"

然后提取路径,使用basename函数

file=$(basename "$path")

或者

file=${path##*/}
于 2012-04-12T13:15:07.887 回答
6

basename path给出路径末尾的文件名

编辑:

值得补充的是,一种常见的模式是在命令周围使用反引号,例如 `basename ...`,因此 UNIX shell 将执行命令并返回其文本值。

因此,要将 basename 的结果分配给变量,请使用

x=`basename ...path...`

$x 将是文件名。

于 2012-04-12T13:16:00.173 回答
2

您可以使用 dirname 命令

$ dirname $path
于 2014-11-03T08:34:11.927 回答
1

您可以使用basename /this/is/could/be/any/path/abc.txt

于 2012-04-12T13:15:14.947 回答