Cách xác định một liên kết tượng trưng mà tôi có thể sử dụng trong mọi thư mục


11

Có thể đặt liên kết tượng trưng để tôi có thể sử dụng projectđể trỏ thư mục home/me/project, vd không? Điều này nên độc lập với vị trí trong hệ thống tập tin.

Tôi muốn sử dụng các lệnh như cd project, nano project/file1.texvà như vậy.

Tôi có phải viết một liên kết tượng trưng cho tất cả các thư mục của tôi không?

Câu trả lời:


15

Hầu hết các shell có một CDPATHbiến cdcó thể tìm kiếm các thư mục để thay đổi theo cùng cách mà các tệp thực thi được tìm kiếm $PATH.

Vì vậy, nếu bạn thêm liên kết tượng trưng của mình vào một ~/projectsthư mục và thực hiện CDPATH=~/projects, bạn sẽ có thể thực hiện cd foođể đi vào~/projects/foo

Với zsh, nếu $varchứa một đường dẫn bạn có thể làm cd ~varvới cdđường dẫn đó. Phần hữu ích của điều đó là khi lời nhắc của bạn có %~sau đó phản ánh nó trong lời nhắc của bạn:

$ proj1=/usr/local proj2=/etc/apache2
$ PS1='%~$ '
$ cd ~proj1
~proj1$ cd ~proj2/sites-enabled
~proj2/sites-enabled$

Với setopt cdablevars, bạn cũng có thể làm cd proj1thay vì cd ~proj1.


9

Bạn có thể muốn sử dụng các biến thay vì các liên kết tượng trưng, ​​ví dụ:

export project=/home/me/project

sau đó

cd $project

hoặc là

vim $project/file

CẬP NHẬT

Như được chỉ ra bởi peterph, bạn cũng có thể kết hợp các biến này (bao gồm các biến được xác định trước), vd

export project=$HOME/project

1
Hoặc thậm chí tốt hơn project=$HOME/project...
peterph

@peterph, hoặc thậm chí đơn giản hơn ~/project.
Stéphane Chazelas

4
Với zsh, bạn cũng có thể làm setopt cdablevarsvà sau đócd project
Stéphane Chazelas

@StephaneChazelas: Tôi nghĩ đó là một điểm tốt - mặc dù nó cụ thể với zshcó lẽ bạn có thể thêm nó như một câu trả lời riêng biệt?
jmetz
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.