ZSH:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Funciona en Bash. Cuál es el problema ? :-RE
ZSH:
sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*
Funciona en Bash. Cuál es el problema ? :-RE
Respuestas:
Sí, zsh
y bash
comportarse de manera diferente a este respecto.
En zsh
, cuando dice " ubuntuone-*
", busca en su directorio de trabajo actual los archivos que comienzan con ubuntuone-
- ya que no encuentra ninguno, dice " no matches
" y no ejecuta el comando.
bash
toma un rumbo diferente: también busca archivos que comienzan ubuntuone-
en el directorio de trabajo actual, pero si no encuentra ninguno, se dice a sí mismo: "Tal vez el programa que estoy invocando sabe cómo manejar el comodín", y así lo pasa " ubuntuone-*
"fuera sudo apt-get
como un argumento literal.
Si tenía un archivo en su directorio de trabajo actual llamado ubuntuone-ffdjhjer
, bash intentaría ejecutarse sudo apt-get remove --purge ubuntuone-ffdjhjer
, lo que probablemente fallará.
En zsh
(y en bash
) puede usar comillas simples para indicarle que no expanda el comodín sino que lo pase, como en:
sudo apt-get remove --purge 'ubuntuone-*'
dpkg -l 'linux*'
escribo bash para ver todos los núcleos instalados.
Puede ser un poco tarde esta respuesta, pero hay una manera de solucionarlo. Desde la línea de comando ejecutar:
unsetopt no_match
shopt -s failglob
en bash
a fijar bash
por lo que se comporta como zsh
y otros proyectiles modernos como fish
o tcsh
que se han fijado que misfeature de la Bourne shell mediante el cual un comando todavía puede funcionar incluso si los globos no coinciden.