Bash'de unicode dosya adını seçin


9

Tamam; Bash'ta olduğumu ve bir klasörde birkaç dosyam olduğunu varsayalım. Bunların birçoğu adlandırılır file☠☡☢☣.txt, burada ☠☡☢☣çılgın türlenemeyen unicode karakterlerle başlar. Bunlardan birine nasıl başvurabilirim? Sekme yalnızca otomatik olarak tamamlanır fileve sonra çılgın bir karakter yazmanızı ister. Bash'a "bana verdiğiniz listede 3. olanı seçin" demenin bir yolu var mı?

Yanıtlar:


9

Etrafında çalışmak ve Shift+ gibi readline ile başka bir tür anahtar bağlama kullanmanızı öneririz TAB. Aşağıdakileri kendinize ekleyin ~/.inputrc:

"\e[Z": menu-complete

Sonra bir sorun exec bash(bu daha sonra içindeki ayarları okumalıdır ~/.inputrc). Bir kerelik olarak, bash'ı yeniden başlatmak yerine, aynı bağlayıcıyı çalıştırarak kurabilirsiniz bind '"\e[Z": menu-complete'.

Artık ShiftTABeşleşen dosya adları arasında geçiş yapmak için tekrarlanan dizileri kullanabilmeniz gerekir (bir sonraki eşleşen karakteri girmek yerine). Bu, verilen herhangi bir komut için işe yarayacaktır ( ShiftTABsıraya bağlı olan standart bir okuma satırı komutu olduğu için ). OP tarafından belirtildiği gibi, bu TABanahtarın standart davranışını etkilemez, sadece açılanın işlevselliğini ekler ShiftTAB.


kullanımından bahsetmek için düzenlendi exec bash, çünkü bu işe yaraması için oldukça önemli bir adım! ;)
Drav Sloan

Teşekkürler! Merak eden herkes için bu, normal işlevselliği değiştirmiyor gibi görünüyor; sadece shift-tab tuşu açılanını ekler.
Erhannis

Doğru, lütfen sekme anahtarımı yalnız bırakın !! :) Bu değiştiyse üzgün olurum: D
Drav Sloan

3

Bazen işe yarayan bir başka yol ?da *joker karakter kullanmak veya globbing yapmak ve daha sonra sekme tamamlama ile benzersiz bir eşleşme elde edene kadar "şeyler" in geri kalanını yazmaktır.


2

İçeren dizine gidin file☠☡☢☣.txtve girin ls -i. Hattı göreceksiniz:

xxxxx file☠☡☢☣.txt

xxxxxdizin numarası nerede file☠☡☢☣.txt. Giriş:

find . -maxdepth 1 -inum xxxxx -exec /bin/mv -i {} bettername.txt \;

burada xxxxxönceki satırda yukarıda belirtilen endeks numarası elde edilir ls -i. Bu yeniden adlandırır file☠☡☢☣.txtolarak bettername.txt.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.