Tạo cd theo các liên kết tượng trưng


76

Tôi có mã được gắn dưới dạng sshfs trong thư mục chính của mình, nhưng hệ thống phân cấp rất khó nhớ, vì vậy tôi đã tạo một liên kết tượng trưng trong thư mục chính của mình dẫn đến thư mục đó. Có cách nào để khi tôi cd vào liên kết tượng trưng đó, thay vì đặt vào liên kết tượng trưng, ​​nó sẽ thực sự cd vào thư mục đó?

Nếu câu hỏi không rõ ràng, đây là một ví dụ về những gì tôi đang tìm kiếm:

foo@foo:~$ ls -l
lrwxrwxrwx  1 foo      foo              5 2012-11-14 08:20 foo -> bar/bar

foo@foo:~$ cd foo
foo@foo:~/bar/bar/$

Câu trả lời:


105

Với bất kỳ triển khai POSIX nào cd, bạn có thể sử dụng -Ptùy chọn để thực hiện việc này.

$ help cd
...
    -P      use the physical directory structure without following symbolic links
...

Bạn có thể thấy nó hoạt động ở đây:

$ mkdir foo
$ ln -s foo bar
$ cd -P bar
$ pwd
/tmp/tmp.WkupF2Ucuh/foo

Nếu bạn muốn đây là hành vi mặc định, bạn có thể tạo bí danh cho cd, như vậy:

alias cd='cd -P'

... Hoặc sử dụng set -o physical. Đối với tcsh, lệnh tương đương là set symlinks=chase.


Và nếu bạn không có triển khai Posix ...?
Scott Bigss
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.