pwd không có liên kết tượng trưng


54

Nếu tôi pwdnhận thấy nó sử dụng bất kỳ liên kết tượng trưng nào tôi đã sử dụng để vào thư mục hiện tại. Tôi có thể lấy nó để cho tôi biết thư mục "thực" tôi đang ở ... tức là đường dẫn từ thư mục gốc đến thư mục hiện tại của tôi mà không sử dụng bất kỳ liên kết tượng trưng nào không?

Câu trả lời:


70

Theo trang web POSIX cho pwd, -Ptùy chọn này có thể được sử dụng:

-P Tên đường dẫn tuyệt đối được viết sẽ không chứa tên tệp, trong ngữ cảnh của tên đường dẫn, tham chiếu đến các tệp thuộc loại liên kết tượng trưng.

Do vậy

$ pwd -P

nên là những gì bạn cần.


Tôi muốn chỉ ra rằng thông tin này có thể dễ dàng tìm thấy bằng cách nhập man pwdshell để tìm ra các tùy chọn cho lệnh này.
Chud37

7

Shell pwd tích hợp sử dụng đường dẫn mà shell theo dõi khi bạn cd(và lưu nó vào $PWD). Điều này có nghĩa là nếu bạn có một liên kết tượng trưng đến một đường dẫn (sâu) phức tạp, nó sẽ cho bạn biết những gì bạn đã nhập để thay đổi thư mục đó thay vì đường dẫn thực. Điều này được thực hiện để cung cấp cho bạn những gì bạn muốn hầu hết thời gian.

/bin/pwdsử dụng getcwdcuộc gọi hệ thống (mà ngày nay là cuộc gọi thư viện, đọc /proc/self/cwd) trả về đường dẫn chính tắc cho thư mục hiện tại, bao gồm tất cả các đường truyền liên kết tượng trưng.

Như Steven D đã chỉ ra, pwd-Ptùy chọn bỏ qua $PWD. Nó cũng có -Ltùy chọn để trả về nội dung của $PWD. Trang man pwdkhông cho biết tùy chọn nào được sử dụng theo mặc định nhưng kinh nghiệm cho tôi biết mô tả ở trên là chính xác (shell pwdvs. /bin/pwd). Tuy nhiên có lẽ bạn không nên dựa vào điều đó và chỉ sử dụng pwd -P.


2
Hành vi bạn mô tả là hành vi trên các hệ thống Linux /bin/pwdcó GNU pwdkhi POSIXLY_CORRECT không được đặt. Trên các hệ thống POSIX, nơi pwd/bin. /bin/pwdsẽ sử dụng $ PWD và có thể trả về các đường dẫn có liên kết tượng trưng. GNU pwd sẽ hành xử theo cách POSIX đó khi tìm thấy biến POSIXLY_CORRECT trong môi trường của nó.
Stéphane Chazelas
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.