Unix命令获取没有basename的文件路径

时间:2014-04-16 07:43:22

标签: linux bash shell unix

我在unix目录中有以下文件

/home/files/myfiles/good.txt

我需要单独提取文件路径

预期输出/home/files/myfiles

注意:我无法使用剪切操作,因为文件路径是动态的。我将文件名和文件路径作为shell脚本的单个用户输入

4 个答案:

答案 0 :(得分:14)

尝试

$ dirname /home/files/myfiles/good.txt

答案 1 :(得分:1)

应该做的工作:

echo /home/files/myfiles/good.txt | sed s,/*[^/]*$,,

答案 2 :(得分:1)

如果不生成其他流程,您可以使用parameter expansion

file=/home/files/myfiles/good.txt
echo "${file%/*}"
/home/files/myfiles

答案 3 :(得分:0)

FWIW,cut可以在rev

的帮助下动态完成
$ echo "/home/files/myfiles/good.txt" | rev | cut -d/ -f2- | rev
/home/files/myfiles

$ echo "/home/files/myfiles/yourfiles/good.txt" | rev | cut -d/ -f2- | rev
/home/files/myfiles/yourfiles