Bisakah saya menambahkan pintasan untuk mengganti jalur di Linux?

33

Sebagai contoh, saya selalu pergi ke jalan ini:

/ user / sesuatu / somefolders / suatu tempat

tapi saya tidak mau mengetik

cd / user / something / somefolders / suatu tempat

di terminal sepanjang waktu, bisakah saya memiliki tangan pendek untuk melakukannya? misalnya, dapatkah saya melakukan sesuatu seperti

cd commandPlace

untuk mengganti jalur?

pengguna28167
sumber

Jawaban:

32

Anda dapat menggunakan variabel lingkungan CDPATHuntuk ini. Dari halaman manual Bash:

CDPATH

Jalur pencarian untuk perintah cd. Ini adalah daftar direktori yang dipisahkan oleh titik dua di mana shell mencari direktori tujuan yang ditentukan oleh perintah cd. Nilai sampel adalah ".: ~: / Usr".

Dalam kasus Anda, Anda dapat mengatur

export CDPATH=.:/user/something/somefolders

di ~/.bashrc, dan kemudian mengetik cd somewhereakan membawa Anda ke /user/something/somefolders/somewhere(dengan asumsi tidak ada direktori bernama somewheredalam direktori saat ini).

Atau, jika Anda tidak ingin merujuk ke folder somewheredengan nama aslinya, Anda bisa membuat direktori tersembunyi yang berisi tautan simbolik /user/something/somefolders/somewheredengan nama yang ingin Anda gunakan. Itu juga bisa berisi tautan ke direktori lain yang sering Anda kunjungi. Kemudian atur CDPATHuntuk memasukkan path ke direktori tersembunyi itu. Meskipun perhatikan bahwa dengan metode ini, jika Anda cd somewheredan kemudian cd .., Anda akan berakhir di direktori tersembunyi. Itu mungkin atau mungkin tidak menjadi masalah bagi Anda.

David Z
sumber
41

Dua pintasan yang saya gunakan sepanjang waktu untuk hal-hal seperti ini:

Alias

alias somedir = 'cd / home / john / www / something /'

Kemudian Anda bisa mengetik somediruntuk pergi ke direktori itu. Tambahkan ini ke .bashrc.

Tautan Simbolik

ln -s / long / path / ke / some / other / folder / shortcut

Ini akan membuat file /shortcuttempat tautan /long/path/to/some/other/folder. Maka Anda bisa mengetik cd /shortcutsebagai gantinya. Peringatan dari ini adalah mengisi direktori root Anda (atau direktori mana pun yang Anda masukkan tautannya) cukup cepat. Saya lebih suka alias.

John T
sumber
John yang baik!
Gob00st
seharusnya ln -s /long/path/to/some/other/folder /shortcutketika saya melakukannya sebaliknya membuat pintasan di tempat saya ingin membuat tautan. Saya mengirim suntingan untuk memperbaruinya.
Elias
1
Bagaimana dengan direktori di root dengan nama pendek, misalnya /sldan buat pintasan di sana? (Yaitu ln -s /long/path/to/some/other/folder /sl/shortcut? Tidak ada kekacauan di root, ditambah pengingat visual bahwa jalur prompt Anda adalah symlink.
RolfBly
14

Saya cenderung menggunakan pencarian interaktif bash sepanjang waktu. Cobalah. Aktifkan itu dengan ctrl + r dan mulai mengetik beberapa bagian dari jalur Anda, seperti di suatu tempat . Mungkin perintah cd Anda akan muncul. :)

Janne Pikkarainen
sumber
9

Lihatlah perintah "alias".

Dalam csh:

alias commandplace "cd /user/something/somefolders/somewhere"

Di sh:

alias commandplace="cd /user/something/somefolders/somewhere"

Tapi saya suka solusi symlink:

ln -s /user/something/somefolders/somewhere ~/commandplace 

Catatan: ln mengambil argumen dalam urutan yang sama seperti cp.

robert
sumber
9

Hal lain yang dapat Anda lakukan adalah menyimpan path yang dimaksud dalam variabel lingkungan. Tambahkan baris ini ke ~/.profilefile Anda :

somedir=/user/something/somefolders/somewhere
export somedir

Anda kemudian dapat mengakses direktori dengan

cd "$somedir"
terdon
sumber
1
Sejauh ini ini adalah solusi terbaik karena Anda dapat menggunakan variabel untuk perintah apa pun. Jika Anda menetapkan alias maka alias itu selalu terikat ke perintah seperti cd ...
BdN3504
Ini adalah solusi yang saya harapkan ada, dan sedang mencari. Untuk alasan yang disebutkan BdN3504.
terinspirasin
1

The aliasmetode yang dijelaskan oleh jawaban yang lain adalah rute yang paling langsung.

Pilihan lain adalah mencoba autojump , yang dideskripsikan sebagai " cdPerintah yang belajar". Keterangan lebih lanjut dalam posting LifeHacker ini .

Doug Harris
sumber