ЗШ:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Работает на Bash. В чем проблема ? :-D
ЗШ:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Работает на Bash. В чем проблема ? :-D
Ответы:
Да 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 что зафиксировал , что ошибочная особенность оболочки Борна в результате чего команда все еще может быть запущена , даже если шарики не совпадает.