我正在尝试使用Unix命令从"abc.txt"
中获取/this/is/could/be/any/path/abc.txt
。
请注意,/this/is/could/be/any/path
是动态的。
有什么想法吗?
提前致谢。
答案 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