Giả sử tôi có các thư mục ~/a/b trong thư mục chính và thư mục b chứa một liên kết tượng trưng đến '..' có tên 'symlink'. Sau đó, tôi thực hiện những hành động sau đây trong bash:Hành vi của cd/bash trên các liên kết tượng trưng
[email protected]:~$ cd a/b/symlink
[email protected]:~/a/b/symlink$ pwd -P
/home/hm/a
[email protected]:~/a/b/symlink$ cd ..
[email protected]:~/a/b$ pwd -P
/home/hm/a/b
-P pwd in thư mục làm việc hiện tại, dereferencing tất cả các liên kết tượng trưng. Tại sao thư mục làm việc/home/hm/a/b ở cuối và không/home/hm?
FYI, bạn có thể sử dụng 'thiết physical' -o hoặc' thiết -P' để làm cho hành vi này vĩnh viễn. – Kevin
.. Tôi nên đề cập rằng việc thực hiện có lẽ là phù hợp hơn với mô tả của @ geekosaur; Tôi sẽ không mong đợi việc ghi đè lên 'OLDPWD' với giá trị của riêng bạn sẽ thực sự ảnh hưởng đến hành vi' cd ..'. – sarnold
Tôi đồng ý rằng tôi không nghĩ rằng OLDPWD thực sự làm bất cứ điều gì ở đây. Tôi đã thử nghiệm nó bằng cách "cd" ing xuống một chuỗi liên kết tượng trưng ba cấp độ sâu và sau đó làm "cd .." một vài lần. Nó hoạt động tốt. Nếu OLDPWD đã được sử dụng, nó sẽ không hoạt động. OLDPWD chỉ nhớ một thư mục và không thể sử dụng để quay lại nhiều thư mục. Do đó, OLDPWD không được sử dụng. –