Kadang-kadang ketika mengakses berbagai direktori itu terjadi sebagian besar waktu saya mengingat nama-nama atau setidaknya sebagian dari nama-nama direktori di bawah sistem Linux kami. Tetapi beberapa direktori diberi nama dimulai dengan huruf pertama atau salah satu karakter di tengah nama Huruf besar.
Adakah yang bisa menyarankan bagaimana saya bisa membuat argumen berikut cd
perintah case INSENSITIVE, sehingga jika saya melakukan cd BackupDirectory
atau cd backupdirectory
bisa memasukkan nama direktori BackupDirectory.
Tentu saja saya tidak ingin mengacaukan hal-hal untuk pengguna lain jadi jika hal di atas memungkinkan, apakah mungkin perubahan itu dapat diterapkan hanya pada sesi yang saya gunakan dan tidak mempengaruhi pengguna lain?
Oke, saya sudah mencoba set completion-ignore-case
tetapi ini tidak berhasil. Ini hanya membantu jika saya mengetik cd b
dan Tabatau Esc Escmengisi nama direktori dengan mengabaikan case. Tapi, yang saya butuhkan adalah jika saya melakukan cd backupdirectory
, itu hanya mengabaikan kasus dan masuk BackupDirectory
sendiri.
sumber
backUP
danbackUp
, bagaimanabackup
tidak ke direktori mana yang ingin Anda tuju?mc
atau beralih ke GUI? Membuat hidup lebih mudah.Jawaban:
Mengaktifkan
cdspell
akan membantu:Dari
man
halaman:sumber
Pesta
set completion-ignore-case on
di~/.inputrc
(ataubind 'set completion-ignore-case on'
dalam~/.bashrc
) akan menjadi rekomendasi saya. Jika Anda akan mengetikkan nama lengkap, mengapa menolak keras pada beberapa penekanan Shifttombol?Tetapi jika Anda benar-benar menginginkannya, ini adalah pembungkus
cd
yang mencoba untuk pertandingan yang tepat, dan jika tidak ada, cari pertandingan yang tidak peka terhadap huruf besar dan lakukan jika itu unik. Ia menggunakannocaseglob
opsi shell untuk globbing case-insensitive, dan mengubah argumen menjadi glob dengan menambahkan@()
(yang tidak cocok dengan apa pun, dan mengharuskanextglob
). Theextglob
pilihan harus diaktifkan ketika mendefinisikan fungsi, jika pesta bahkan tidak bisa mengurai itu. Fungsi ini tidak mendukungCDPATH
.Ksh
Sementara saya melakukannya, inilah fungsi serupa untuk ksh93. The
~(i)
dimodifikasi untuk kasus-sensitif pencocokan tampaknya tidak sesuai dengan/
akhiran untuk mencocokkan direktori hanya (ini mungkin bug di rilis saya ksh). Jadi saya menggunakan strategi yang berbeda, untuk menyingkirkan non-direktori.Zsh
Akhirnya, inilah versi zsh. Sekali lagi, membiarkan penyelesaian case-insensitive mungkin merupakan pilihan terbaik. Pengaturan berikut akan kembali ke penggumpalan case-sensitive jika tidak ada kecocokan case-persis:
Hapus
''
untuk menampilkan semua kecocokan dengan huruf besar-kecil sekalipun ada kecocokan dengan huruf besar-kecil. Anda dapat mengatur ini dari antarmuka menucompinstall
.sumber
inputrc
agar berfungsi. Seperti ini:echo "set completion-ignore-case on" >> ~/.inputrc
cd:cd:17: no such file or directory: videos
(Saya punya dir disebutVideos
)emulate -L zsh
keemulate -LR zsh
? (Ngomong-ngomong, aku baru saja memperbaiki bug, yang seharusnyaemulate -L zsh
, bukanemulate zsh
, kalau tidak itu akan mengacaukan opsi shell kamu.)