ZSH:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Bekerja di Bash. Apa masalahnya ? :-D
ZSH:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Bekerja di Bash. Apa masalahnya ? :-D
Jawaban:
Ya, zshdan bashberperilaku berbeda dalam hal ini.
Di zsh, ketika Anda mengatakan " ubuntuone-*" itu terlihat di direktori kerja Anda saat ini untuk file yang dimulai dengan ubuntuone-- karena tidak menemukan apa pun, ia mengatakan " no matches" dan tidak menjalankan perintah.
bashmengambil taktik yang berbeda - ia juga mencari file yang dimulai dengan ubuntuone-di direktori kerja saat ini, tetapi jika tidak menemukan itu mengatakan kepada dirinya sendiri, "Mungkin program saya memohon tahu bagaimana menangani wildcard," dan seterusnya " ubuntuone-*"ke sudo apt-getsebagai argumen literal.
Jika Anda memiliki file di direktori kerja Anda saat ini bernama ubuntuone-ffdjhjer, maka bash akan mencoba mengeksekusi sudo apt-get remove --purge ubuntuone-ffdjhjer, yang mungkin akan gagal.
Di zsh(dan di bash) Anda dapat menggunakan tanda kutip tunggal untuk mengatakan itu bukan untuk memperluas wildcard tetapi untuk meneruskannya, seperti pada:
sudo apt-get remove --purge 'ubuntuone-*'
dpkg -l 'linux*'bash untuk melihat semua kernel yang terinstal.
Mungkin agak terlambat jawaban ini, tetapi ada cara untuk memperbaikinya. Dari baris perintah jalankan:
unsetopt no_match
shopt -s failglobdi bashuntuk memperbaiki bash sehingga berperilaku seperti zshdan kerang modern lainnya seperti fishatau tcsh yang telah tetap bahwa misfeature dari Bourne shell dimana perintah mungkin masih berjalan bahkan jika gumpalan tidak cocok.