Chỉ ra đường dẫn không liên kết sẽ là gì?


10

Trên Linux, nếu tôi đã quay vòng và hiện đang ở trong một thư mục, có cách nào để tìm ra đường dẫn thực sự đến thư mục đó là gì nếu tôi không sử dụng một liên kết tượng trưng để đến đó?

Xem xét:

$ 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

Hoặc là:

$ 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

Có cách nào để tìm ra rằng / home / dave / tmp / 5 thực sự là / home / dave / 1/2/3/4/5 không?

Câu trả lời:


13

Để sử dụng với cd, sử dụng 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

Đối với các liên kết tượng trưng chung, sử dụng readlink:

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

Hoặc ls -l(với -dcác thư mục):

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

tập tin readlink -f trả về đường dẫn không liên kết đến tập tin đó, đó là những gì tôi muốn. Cảm ơn!
David Mackffy

1
huh, tôi luôn luôn sử dụng / bin / pwd, vì nó không thể biết nó ở đâu, không giống như vỏ pwd dựng sẵn. Rõ ràng tương đương với pwd -P.
Peter Cordes

Vì lý do nào đó không hoạt động cho các liên kết sym ẩn vì một số lý do
Casebash

2

Bạn muốn readlink -f(trong coreutils, được cài đặt theo mặc định) hoặc dễ nhớ hơn realpath, mà bạn phải cài đặt.


0

Một phương pháp khác tôi đã sử dụng,

cd to the symlink
Ctrl+Shift+T #To open a new tab
pwd

Pwd tab mới, cung cấp cho các liên kết tượng trưng. ;)


Tôi xin lỗi, bạn đang sử dụng trình bao, trình quản lý cửa sổ hoặc thiết bị đầu cuối nào ở đây?
David Mackffy

Tôi nghĩ rằng anh ấy đang nói về thiết bị đầu cuối gnome
uy tín

Vâng, tôi đã nói về Terminal Gnome.
Lakshman Prasad
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.