从Unix中获取完整路径中的文件名

时间:2012-04-12 13:13:07

标签: bash shell unix ksh

我正在尝试使用Unix命令从"abc.txt"中获取/this/is/could/be/any/path/abc.txt。 请注意,/this/is/could/be/any/path是动态的。

有什么想法吗?

提前致谢。

4 个答案:

答案 0 :(得分:60)

bash

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

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

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

然后要提取路径,请使用basename function

file=$(basename "$path")

file=${path##*/}

答案 1 :(得分:6)

basename path在路径末尾提供文件名

编辑:

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

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

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

和$ x将是文件名。

答案 2 :(得分:2)

您可以使用dirname命令

$ dirname $path

答案 3 :(得分:1)

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