找出什么是非符号链接路径?


10

在Linux上,如果我已经转过目录并现在位于目录中,那么如果我没有使用符号链接到达该目录,是否可以找出该目录的真实路径?

考虑:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4/5 5
$ cd 5
$ pwd 
/home/dave/tmp/5

要么:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4 4
$ cd 4/5
$ pwd 
/home/dave/tmp/4/5

有什么办法可以弄清楚/ home / dave / tmp / 5确实是/ home / dave / 1/2/3/4/5吗?

Answers:


13

要用于cd,请使用pwd -P

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4/5 5
$ cd 5
$ pwd 
/home/dave/tmp/5
$ pwd -P
/home/dave/tmp/1/2/3/4/5

对于通用符号链接,请使用readlink

$ cd ..
$ readlink 5
1/2/3/4/5

ls -l-d用于目录):

$ ls -ld 5
lrwxr-xr-x  1 dave  staff  9 Jul 24 10:10 5 -> 1/2/3/4/5

readlink -f文件返回该文件的非符号链接路径,这就是我想要的。谢谢!
David Mackintosh,2009年

1
呵呵,我总是使用/ bin / pwd,因为它不知道它的位置,这与内置的pwd shell不同。显然等同于pwd -P。
Peter Cordes

ls -lda由于某些原因不能用于隐藏的符号链接
Casebash 2010年


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.