当我尝试在 Linux 命令提示符下查找当前工作目录(使用“pwd”)时,它将显示包含符号链接的目录。例如,如果我创建一个符号链接并使用它来访问该目录:
ln -s /mnt/backup /home/biotech/backup
cd /home/biotech/backup
pwd
这将显示“/home/biotech/backup”而不是“/mnt/backup”。Ubuntu 和 Cygwin 上都会发生这种情况。
我可以使用什么命令来查看后者,即“真实”目录?
答案1
可能:
pwd -P
来自帮助:
“-P:打印的路径名将不包含符号链接。”
答案2
/bin/pwd
它不知道你去过哪里,也不知道你是怎么到达那里的,所以它会根据第一原理来推理。
答案3
为了解决一般情况下的这个问题(即不仅仅是当前目录),使用:
readlink -f PATH
答案4
为了获得更可移植的(符合 POSIX 规范的)pwd -P
命令,我们可以使用常规的内置 shell command
:
# cf. http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap01.html#tag_17_06
command -p pwd -P
#builtin command -p pwd -P
#alias pwd=echo; PATH="$(command -p getconf PATH)" 'pwd' -P