Apakah ada sesuatu seperti reverse-search-history (Ctrl-r) bash, tetapi hanya untuk direktori?
Saya memiliki beberapa hierarki folder yang mendalam yang ingin saya lompati, jadi saya ingin menggunakan sesuatu seperti reverse-search-history, tetapi hanya mencari nama folder dan memberi saya jalur absolut.
Pada dasarnya, ini akan memberikan hasil yang mirip dengan menggunakan !?
tetapi hanya mencocokkan perintah dengan cd di depan, Anda dapat melangkah melalui hasil, dan path lengkap.
Sejauh ini, solusi terbaik yang saya temukan adalah bashmark .
Jawaban:
Lihatlah autojump :
sumber
Ada
itu adalah perintah "cd [spasi] [tanda hubung]", yang masuk ke direktori Anda sebelumnya, pada dasarnya "sejarah kedalaman 1". "Cd -" yang berulang-kali berpindah-pindah antara dua direktori.
Mengutip halaman manual:
Sayangnya, saya tidak tahu tentang sejarah direktori bawaan yang sebenarnya.
sumber
pushd dir
popd
pasangan yang dapat menyimpan tumpukan direktori sejarah Anda. Ini sangat membantu dalam skrip yang beroperasi di folder yang berbeda.pushd
danpopd
, dan itu juga sudah disebutkan di sini.bash memiliki pushd / popd / dirs. Saya memilikinya di .bashrc saya untuk mendorong direktori secara otomatis ke tumpukan bash.
Pop ini menggunakan
popd
dan menampilkan tumpukan menggunakandirs
sumber
Saya telah memiliki pengalaman yang baik dengan z-jump. Hal ini memungkinkan penyelesaian, meskipun hanya untuk tujuan akhir, tidak melangkah melalui jalan. Itu memang menunjukkan path lengkap setelah penyelesaian tab.
sumber
Hanya untuk berpadu dengan pengalaman saya sendiri, saya menulis skrip sederhana untuk mengatasi persyaratan ini beberapa waktu yang lalu, itu menimpa perintah cd builtin dengan fungsi sederhana yang menambahkan lokasi direktori baru ke file sejarah, skrip python kemudian digunakan untuk menyediakan antarmuka bash yang secara dinamis memperbarui daftar direktori yang dipesan saat Anda memasukkan istilah pencarian, agak seperti pencarian perintah terbalik dari bash.
Ini tersedia di git-hub untuk mereka yang penasaran.
sumber
Saya ingin merekomendasikan saya
ltcd
untuk navigasi cepat melalui sejarah direktori:https://github.com/dczhu/ltcd
Ini menyediakan fitur berikut untuk membuat hidup lebih mudah:
sumber
Saya telah membuat skrip yang memiliki fungsi serupa dengan perintah oh-my-zsh
dirs -v
yang bekerja pada bash. Jika Anda pernah menggunakan oh-my-zsh , Anda mungkin telah memperhatikan bahwa riwayat direktori yang disediakan oleh perintahdirs -v
akan diatur ulang setiap kali Anda keluar dari terminal. Namun, itu tidak akan terjadi jika Anda menggunakan skrip ini .Fungsionalitas:
Perlihatkan daftar 10 direktori yang paling baru digunakan
d
.Lompat ke direktori mana pun dalam daftar dengan mengetikkan nomor direktori dalam daftar. Anda perlu menggunakan 0 bukannya 10 untuk melompat ke direktori ke-10.
Jalur direktori akan diletakkan di bagian atas daftar setiap kali Anda menggunakan
v
( vim ) untuk mengedit file atauo
( xdg-buka ) untuk membuka file dari direktori itu. Atau jika Anda suka, setiap kali Anda mengunjungi direktori.Anda dapat melihatnya beraksi di sini .
sumber
Nah, Anda bisa menambahkan potongan kode ini ke
~/.bashrc
, yangmenyediakan perintah cd khusus
dan memberikan perintah pencarian riwayat cd.
Tentu saja, perintah cd yang saya berikan sangat mendasar, dan bukan yang Anda inginkan; tetapi dimungkinkan untuk menggunakan pernyataan kasus atau ekspansi parameter untuk mencapai sesuatu yang mirip dengan yang Anda inginkan.
Anda bahkan dapat menambahkan beberapa fungsi "Programmable completion", yang dapat digunakan untuk menambahkan
cd /path/to/mydir
perintah penuh berdasarkan sub-string unik/path/to/unique/mydir
, meskipun metode itu masih mengharuskan Anda untuk mengetikcd unique/mydir<tab>
.sumber
dirs
perintah bash yang pada dasarnya melakukan hal yang samamy_dirs
, tetapi pada satu baris.alias cd=pushd
akan menjadi bentuk yang paling elegan.Anda dapat membangun sendiri
cd
perintah denganpushd
,popd
,dirs
perintah builtin.Pemakaian
cd --
(daftar riwayat saat ini)cd -num
(buka direktori num)cd -
(buka direktori sebelumnya)sumber
Saya menggabungkan alat ini, yang menggabungkan solusi sebelumnya untuk menyimpan sejarah CLI global yang komprehensif dengan alat grepping interaktif yang disebut percol (dipetakan ke C ^ R). Saya menggunakannya untuk mengambil perintah di mana mereka dijalankan atau untuk menemukan direktori dengan perintah. Masih licin pada mesin pertama yang saya mulai menggunakannya, sekarang dengan riwayat CLI> 2 tahun.
Alat grep bekerja di kedua jalur dan perintah, tetapi mungkin masih berguna bagi Anda. Lihat juga 'dirs -v' di zsh
https://github.com/gawells/ariadne
sumber
cd share/man
hanya berfungsi jika saya sudah di / usr.