ZSH:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Працює на Баша. В чому проблема ? :-D
ZSH:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Працює на Баша. В чому проблема ? :-D
Відповіді:
Так, zshі bashповодяться по-різному в цьому плані.
В zsh, коли ви говорите , « ubuntuone-*» це виглядає в поточній робочій директорії для файлів , які починаються з ubuntuone-- , так як не знайти, він говорить : « no matches» і не виконує команду.
bashприймає інший хід - він також шукає файли, які починаються з ubuntuone-поточного робочого каталогу, але якщо він не знайде жодного, він каже собі: "Можливо, програма, на яку я посилаюсь, знає, як поводитись з підстановкою" і так передає " ubuntuone-*"off 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 що зафіксував , що помилкова особливість оболонки Борна в результаті чого команда все ще може бути запущена , навіть якщо кульки не збігається.