ZSH:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Bash üzerinde çalışıyor. Sorun ne ? :-D
ZSH:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Bash üzerinde çalışıyor. Sorun ne ? :-D
Yanıtlar:
Evet zsh
ve bash
bu konuda farklı davranıyorlar.
İçinde zsh
" ubuntuone-*
" dediğinizde , şu anki çalışma dizininizde ile başlayan dosyaları arar ubuntuone-
- hiçbiri bulamadığı için " no matches
" der ve komutu çalıştırmaz.
bash
farklı bir çakışma alır - aynı zamanda ubuntuone-
geçerli çalışma dizininde başlayan dosyaları arar , ancak herhangi bir şey bulamazsa kendi kendine "Belki çağırdığım program joker karakterin nasıl işleneceğini bilir" ve böylece geçer " ubuntuone-*
" sudo apt-get
gerçek bir argüman olarak.
Geçerli çalışma dizininizde şu ubuntuone-ffdjhjer
adla adlandırılmış bir dosya varsa , bash yürütmeye çalışır ve sudo apt-get remove --purge ubuntuone-ffdjhjer
bu muhtemelen başarısız olur.
İçinde zsh
(ve içinde bash
), joker karakteri genişletmemesini değil, onu iletmesini bildirmek için tek tırnak işaretleri kullanabilirsiniz:
sudo apt-get remove --purge 'ubuntuone-*'
dpkg -l 'linux*'
kurulu tüm çekirdekleri görmek için bash yazıyorum .
Bu cevabı biraz geç olabilir, ama bunu düzeltmenin bir yolu var. Komut satırından yürütme:
unsetopt no_match
shopt -s failglob
içinde bash
hiç düzeltme bash
bunun gibi davranır böylece zsh
ve diğer modern kabuklar gibi fish
veya tcsh
o giderdiğinizi globs eşleşmedi bile bir komut hala çalıştırmak olabilir sayede Bourne kabuğunun misfeature.