在bash中 cd 内建命令有两个选项, -P 告诉 cd 使用的物理目录结构遍历,因为它解决符号链接的目录结构,并 -L 哪些手册页这样说:
the -L option forces symbolic links
to be followed by resolving the link after processing instances
of .. in dir. If .. appears in dir, it is processed by removing
the immediately previous pathname component from dir, back to a
slash or the beginning of dir.
3 回答
如何使用
dirname
?要将一个目录的值存储在变量中:
您可以使用BASH字符串操作来获取任何完整路径的父父目录路径:
%/[^/]*
从$PWD
删除最后一个匹配的模式/*
,这是当前的工作目录 .您可以在本地将任何目录的父目录引用为
..
,或者如果您可以信任$PWD
变量,则可以使用$PWD/..
,而不是在子shell中执行任何字符串操作或启动命令 .当然,这只是让你使用父目录,它不会给你父目录的名称 . 为此,您已经有了几个可用的替代品 . 还有一个,请继续阅读 .
在bash中
cd
内建命令有两个选项,-P
告诉cd
使用的物理目录结构遍历,因为它解决符号链接的目录结构,并-L
哪些手册页这样说:所以...虽然你可能完全没有以下内容:
因此,您可以使用以下命令获取父目录:
请注意,虽然这确实涉及目录更改,但更改实际上在子shell(
$(...)
)内,因此它不会影响您的脚本 .请注意,我说"effectively"因为严格来说,
$(...)
,cd
和pwd
都是内置的bash,所以你实际上并没有产生新的shell .