如何 - 我总是可以从完整的目录路径中检测最后一个目录

时间:2017-05-15 08:09:51

标签: shell

需要打印以下示例中的最后一个目录。目录结构如下所示:
"/home/user/example/bar" "/home/user/example/backup/foo" "/home/user/example/bar1" "/home/user/example/backup/tmp/bar2" "/home/user/example/bar3" "/home/user/example/bar4"

只有当我的完整目录路径包含“example”目录时,我才需要将最后一个目录(bar,foo,bar1,bar2,bar3,bar4)转换为某个变量。
如何像上面的示例一样始终检测最后一个目录(bar,foo,bar1,bar2,bar3,bar4)?

此外,如果我的目录路径包含示例,那么我需要在示例后获取立即目录。
"/home/user/example/backup/foo" result should be backup "/home/user/example/bar1" result should be bar1 "/home/user/example/backup/tmp/bar2" result should be backup "/home/user/example/bar3" result should be bar3 "/home/user/example/bar4" result should be bar4
提前致谢! :)

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

DIR="/home/user/example/bar3"
if [ "${DIR##*/example/*}" = "" ]; then
    echo "Contains example"
    LAST_DIR="${DIR##*/}"
    echo "Last dir is: ${LAST_DIR}"
fi