回答:
はい、zsh
そしてbash
この点で動作が異なります。
でzsh
、「ubuntuone-*
」と言うと、現在の作業ディレクトリ内で始まるファイルをubuntuone-
探します-見つからないため、「no matches
」と表示され、コマンドは実行されません。
bash
別のタックを取ります-またubuntuone-
、現在の作業ディレクトリで始まるファイルを探しますが、見つからない場合は、「呼び出しているプログラムはワイルドカードを処理する方法を知っているかもしれません」ubuntuone-*
」をsudo apt-get
リテラル引数として使用します。
現在の作業ディレクトリにというファイルがある場合ubuntuone-ffdjhjer
、bashは実行しようとしますがsudo apt-get remove --purge ubuntuone-ffdjhjer
、おそらく失敗します。
でzsh
(とでbash
)あなたはのように、ワイルドカードを展開するが、それを渡すためにではないことを伝えるために、単一引用符を使用することができます。
sudo apt-get remove --purge 'ubuntuone-*'
dpkg -l 'linux*'
、インストールされているすべてのカーネルを表示するために、常にbashと入力します。
この答えは少し遅れているかもしれませんが、これを修正する方法があります。コマンドラインから実行:
unsetopt no_match
shopt -s failglob
でbash
の修正 bash
には、同じように動作してzsh
など他の現代のシェルfish
やtcsh
コマンドがまだグロブが一致しなかった場合でも実行することができることにより、Bourneシェルの設計ミスを修正したもの。