Linux cd .. command

9

Katakan jika saya harus sering melakukan ini:

cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/

Apakah ada cara yang lebih cepat untuk tidak selalu mengetik ../../../../berkali-kali? Adakah ide kreatif?

Stan
sumber
2
mengapa tidak mengeksekusi cd ../../../..dan menyelesaikannya saja?
Red Cricket
8
Anda dapat menikmati pushddan popdatau bahkan cd -.
jscott
1
Jika Anda pergi sejauh itu mungkin masuk akal untuk hanya cd / aktual / path / Anda / inginkan tergantung pada seberapa dalam folder pergi.
Drew Khoury
Ini adalah upaya yang jauh lebih banyak daripada nilainya. Jika Anda berpindah di antara direktori, spesifikasi jalur lengkap atau hanya menggunakan cd -( untuk pergi ke direktori terakhir ) lebih mudah. Saya biasanya alias h="history|grep"agar saya bisa menggunakan pintasan entri riwayat sebagai gantinya. Sesuatu seperti h foo3, diikuti oleh !450untuk mengulangi perintah itu.
ewwhite
Buka jendela terminal lain dan jangan mengetik cd ../../../ .. sama sekali
Matt

Jawaban:

18

Cara klasik untuk melakukan ini adalah mengatur CDPATHvariabel. Dalam kasus Anda itu dapat diatur ke .:../../../../atau .:/path/to/the/parent/of/foountuk mencapai efek yang diinginkan. Anda kemudian dapat dengan mudah melakukan cd foo/sub1/bar/destdan sampai ke tempat yang Anda inginkan.

Keuntungan dari ini adalah bahwa penyelesaian tab untuk cdjuga melihat $CDPATHdan secara ajaib akan bekerja.

Dennis Kaarsemaker
sumber
9

Anda dapat menggunakan autojump yang secara otomatis belajar dari perintah cd sebelumnya dan Anda hanya perlu menentukan string unik dari path lengkap lain kali. ex. j foo, j foo1, j foo2

pragnesh
sumber
7

Anda dapat membuat pintasan untuk perintah ini dengan menambahkan alias ke file konfigurasi bash (~ / .bashrc atau /etc/bash.bashrc)

alias cdd="cd ../../../../"

Kemudian ketika Anda mengetiknya cddakan menjalankan perintah itu.

Jason
sumber
3
Ya, atau function cdd () { cd ../../../../$1/bar/dest ; }, sehingga maka Anda hanya bisa mengetik misalnya cdd foo, cdd foo2.
Andrew Schulman
0

Saya baru-baru ini menemukan https://github.com/rupa/z , yang memungkinkan Anda melompat ke direktori yang baru saja digunakan oleh regex. Jadi Anda bisa melakukan sesuatu seperti:

z foo3.*dest

dari pada:

cd ../../../../foo3/sub1/bar/dest/

(selama Anda telah mengunjungi direktori itu sebelumnya, dan tidak ada yang lebih baru / sering digunakan yang cocok dengan regex)

rjmunro
sumber