Sekme tamamlama olasılıklarını nasıl değerlendirebilirim?


18

Bir konsolda sekmeye bastığımda bu çıktıyı alıyorum

2957 olasılıkların tümü gösterilsin mi? (y veya n)

grepBu 2957 olasılık üzerinde kullanmanın bir yolu var mı ? İçinde "svn" kelimesi bulunan tüm komutları aramak istiyorum.

Yanıtlar:


21

Çözüm bash yerleşiktir compgen. Erişilebilen tüm komutlardan ve komut takma adlarından 'svn' yazmak için $PATH, yazın.

compgen -ac | grep svn

Belirli bir önekten (ör. İle başlayan tüm komutlar ecrypt) aramak ister misiniz ? Normal ifadeler kullanın . .

compgen -ac | grep "^ecrypt"

mükemmel cevap, ama ya sekme tamamlama olasılıklarını kendileri grep istiyorsa? Yani, her zaman komut adıyla değil, aynı zamanda komut parametreleriyle de tetiklenir.
UncleZeiv


1

Bu eşit olmalıdır:

for x in `echo $PATH | sed 's/:/ /g'`; do ls $x | grep svn; done

1
for i in $(echo $PATH | tr ":" "\n"); do find $i -type f -perm +111; done | grep svn

Bunun dışında totaam'ın cevabına çok benzer şekilde, kapsamı yürütülebilir dosyalarla sınırlar (Bash'ın yaptığı gibi). Ama JJE's compgenbir mil daha iyi.


1

belki {,.}*svn*burada yardımcı olabilir, örneğin ls -l /usr/bin/{,.}*svn*<tab>.

Ancak, Zsh'a bir göz atın! İşte: http://www.jukie.net/bart/blog/zsh-tab-completion , sekme tamamlama sonuçlarınızı azaltmanıza nasıl yardımcı olabileceği konusunda bazı harika örneklerdir. Buna, örneğin "foobar" kelimesi olmadan tüm sekme tamamlama sonuçlarını veya ilk etapta çift basamaklı tüm sonuçları, alt dizin sekmesini tamamlama ve çok daha fazlasını istiyorsanız, olumsuzlama da dahildir. Zsh olarak değiştirmemin nedeni, tüm açık terminaller arasında tarih paylaşımıydı.


0

Ben telafiyi bilmiyordum ve şunu önerirdim:

ls -d ${PATH//:/\/*svn* } 2>/dev/null

bash için.

${VAR//pattern/replace} replaces in VAR pattern with replace. // is used to replace every pattern, not just the first, which would be just /.
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.