Thay đổi thư mục cha mẹ (../) bằng symlink


32

Tôi có một liên kết tượng trưng

~/link -> ~/a/really/long/path

Khi tôi làm

cd ~/link
cd ..    

nó đưa tôi đến

~

nhưng tôi muốn đi đến

~/a/really/long

Có cách nào để làm việc này không?

Tôi đang sử dụng bash.


1
Bạn có nghĩa là cd ~/a/really/long/pathsau đó cd ..đặt bạn vào ~lúc này? Tôi không thể tái tạo điều đó.
Mikel

1
@Mikel: Không, đầu tiên hãy tạo một liên kết tượng trưng để ~/a/really/long/pathsau đó cd đến đó sau đó đến ... Bạn nên kết thúc trở lại ~ (giả sử đó là nơi bạn bắt đầu).
Xodarap

Chỉnh sửa của tôi có chính xác không? Tôi không thể hiểu câu hỏi trước đây.
Mikel

Câu trả lời:


38

Thư mục theo dõi Bash (cũng như ksh, zsh và thậm chí tro) thay đổi để cd /foo/bar && cd ..luôn đưa bạn đến /foongay cả khi barlà một liên kết tượng trưng. Vượt qua -Ptùy chọn để cdbỏ qua thay đổi được theo dõi và thực hiện theo cấu trúc thư mục của vật lý học:

cd -P ..

Xem help cdhoặc man builtinsđể biết tài liệu về nội dung bash cd. Nếu bạn thực sự không thích tính năng theo dõi thư mục, bạn có thể tắt nó bằng set -Pbash ( set -o no_chase_linktrong zsh).


1
Cách tôi đọc câu hỏi, OP đã -Phoặc -o physicalđã đặt chưa?
Mikel

+1, nhưng đề xuất liên kết đến trang man.
Faheem Mitha

@Mikel: Không, câu hỏi nói rằng anh ta đang theo liên kết tượng trưng, ​​không phải cấu trúc thư mục vật lý.
Faheem Mitha

Xin lỗi, tôi không thực sự cố gắng chỉnh sửa bài viết của bạn. Đề nghị chỉnh sửa gửi ngay bây giờ.
Faheem Mitha

4

Bạn cũng có thể sử dụng readlink để tìm đường dẫn vật lý đến thư mục này, sau đó đi lên một thư mục cao hơn:

cd $(readlink -f .)/..

3

Một phương pháp bạn có thể sử dụng là sử dụng bí danh thay vì liên kết tượng trưng để đưa bạn đến ~ / a / really / long / path. Đó là phương pháp tôi sử dụng, kể từ đó tôi chỉ có thể gõ một lệnh chữ 1/2 / et cetera đơn giản thay vì liên kết tượng trưng cd

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.