Cara mendefinisikan tautan simbolis yang dapat saya gunakan di setiap direktori

11

Apakah mungkin untuk menetapkan tautan simbolik sehingga saya dapat menggunakan projectuntuk mengarahkan direktori home/me/project, misalnya? Ini harus independen dari lokasi dalam sistem file.

Saya ingin menggunakan perintah like cd project, nano project/file1.texdan sebagainya.

Apakah saya harus menulis tautan simbolis ke semua direktori saya?

LaTeXist
sumber

Jawaban:

15

Kebanyakan shell memiliki CDPATHvariabel yang cddapat mencari direktori untuk diubah dengan cara yang sama seperti yang dieksekusi dicari $PATH.

Jadi, jika Anda menambahkan symlink di ~/projectsdirektori dan melakukannya CDPATH=~/projects, Anda dapat melakukannya cd foountuk masuk~/projects/foo

Dengan zsh, jika $varberisi jalur yang bisa Anda lakukan cd ~varuntuk cdmenuju jalur itu. Bagian yang berguna dari itu adalah ketika prompt Anda %~yang kemudian mencerminkannya di prompt Anda:

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

Dengan setopt cdablevars, Anda juga dapat melakukan cd proj1bukan cd ~proj1.

Stéphane Chazelas
sumber
9

Anda mungkin ingin menggunakan variabel sebagai ganti tautan simbolik, mis

export project=/home/me/project

kemudian

cd $project

atau

vim $project/file

MEMPERBARUI

Seperti yang ditunjukkan oleh peterph, Anda juga dapat menggabungkan ini (termasuk variabel yang telah ditentukan), misalnya

export project=$HOME/project
Jmetz
sumber
1
Atau bahkan lebih baik project=$HOME/project...
peterph
@peterph, atau bahkan lebih sederhana ~/project.
Stéphane Chazelas
4
Dengan zsh, Anda juga dapat melakukannya setopt cdablevarsdan kemudiancd project
Stéphane Chazelas
@StephaneChazelas: Saya pikir itu poin yang bagus - meskipun khusus untuk zshAnda bisa menambahkannya sebagai jawaban terpisah?
jmetz