ZSH:
Sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Fonctionne sur Bash. Quel est le problème ? :-RÉ
Oui, zsh
et bash
se comportent différemment à cet égard.
Dans zsh
, lorsque vous dites "ubuntuone-*
", il recherche dans votre répertoire de travail actuel les fichiers commençant par ubuntuone-
. Comme il n'en trouve pas, il affiche "no matches
"et n'exécute pas la commande.
bash
adopte une approche différente - il recherche également les fichiers commençant par ubuntuone-
dans le répertoire de travail en cours, mais s’il ne trouve aucun fichier, il se dit: "Le programme que j’appelle sait peut-être comment pour gérer le caractère générique ", et passe ainsi" ubuntuone-*
"à Sudo apt-get
en tant qu'argument littéral.
Si vous avez un fichier dans votre répertoire de travail actuel appelé ubuntuone-ffdjhjer
, alors bash essaiera d'exécuter Sudo apt-get remove --purge ubuntuone-ffdjhjer
, ce qui échouera probablement.
Dans zsh
(et dans bash
), vous pouvez utiliser des guillemets simples pour lui indiquer de ne pas développer le caractère générique, mais de le transmettre, comme dans:
Sudo apt-get remove --purge 'ubuntuone-*'
Peut-être un peu tard cette réponse, mais il existe un moyen de résoudre ce problème. Depuis la ligne de commande, exécutez:
unsetopt no_match
Il existe un autre moyen d'empêcher l'expansion dans zsh, que je préfère aux citations:
Sudo apt-get remove --purge ubuntuone-\*