我编写了接受目录名称作为参数的 bash 脚本。一个点 ('.') 是一个有效的目录名,但我有时需要知道 '.' 在哪里 是。readlink
and命令提供了一个解析的realpath
路径,这没有帮助,因为我需要允许符号链接。
例如,给定目录的解析路径可能类似于/mnt/vol_01/and/then/some
,而脚本以 '.' 调用。在哪里 '。' 是/app/then/some
(一个符号链接,可以解析到我给出的第一条路径)。
我为解决我的问题所做的就是使用cd
和pwd
组合来提供我想要的完整路径,到目前为止它似乎运行良好。
脚本的简化示例:
DEST_DIR=$1
# Convert the given destination directory to a full path, ALLOWING
# for symbolic links. This is necessary in cases where '.' is
# given as the destination directory.
DEST_DIR=$(cd $DEST_DIR && pwd -L)
# Do stuff in $DEST_DIR
我的问题是:是我使用cd
和pwd
获得我想要的东西的最佳方式吗?或者,还有更好的方法?