ZSH:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Funktioniert auf Bash. Was ist das Problem ? :-D
ZSH:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Funktioniert auf Bash. Was ist das Problem ? :-D
Antworten:
Ja, zshund bashverhalten Sie sich in dieser Hinsicht anders.
In zsh, wenn Sie sagen , „ ubuntuone-*“ es für Dateien in Ihrem aktuellen Arbeitsverzeichnis sucht , die mit beginnen ubuntuone-- da es eine nicht finden, heißt es „ no matches“ , und führen Sie den Befehl nicht.
bashAnders verhält es sich - es sucht auch nach Dateien, die ubuntuone-im aktuellen Arbeitsverzeichnis beginnen, aber wenn es keine findet, sagt es sich: "Vielleicht weiß das von mir aufgerufene Programm, wie es mit dem Platzhalter umgeht" und geht so weiter. ubuntuone-*"off to sudo apt-getals wörtliches Argument.
Wenn Sie eine Datei in Ihrem aktuellen Arbeitsverzeichnis ubuntuone-ffdjhjerhätten sudo apt-get remove --purge ubuntuone-ffdjhjer, die aufgerufen wird , würde bash versuchen, sie auszuführen , was wahrscheinlich fehlschlagen würde.
In zsh(und in bash) können Sie einfache Anführungszeichen verwenden, um anzugeben, dass der Platzhalter nicht erweitert, sondern weitergegeben werden soll, wie in:
sudo apt-get remove --purge 'ubuntuone-*'
dpkg -l 'linux*'tippe zB immer bash ein, um alle installierten Kernel zu sehen.
Diese Antwort könnte etwas spät sein, aber es gibt eine Möglichkeit, dies zu beheben. Von der Kommandozeile aus ausführen:
unsetopt no_match
shopt -s failglobum bashzu beheben bash , wie es sich verhält, zshund andere moderne Shells, wie fishoder tcsh die dieses Fehlverhalten der Bourne-Shell behoben haben, wobei ein Befehl möglicherweise immer noch ausgeführt wird, selbst wenn die Globs nicht übereinstimmen.