Estoy tratando de eliminar todos los archivos y directorios en /path/to/dir/
salvo dos directorios ( dir1
y dir2
) desde un host remoto utilizando SSH. Cuando ejecuto un comando similar a este en mi caja de Ubuntu 14.04 local, funciona como se esperaba:
user@host1:~$ cd /path/to/dir/ && rm -rf !(dir1|dir2)
Si intento ejecutar el mismo comando a través de SSH en otro host con la misma estructura de directorios, falla.
user@host1:~$ ssh user@host2 'cd /path/to/dir/ && rm -rf !(dir1|dir2)'
bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `cd /path/to/dir/ && rm -rf !(dir1|dir2)'
¿Cómo debo escapar del comando para que funcione? Pensé que usar comillas simples era suficiente.
@ John1024 Buena captura. De hecho, el otro anfitrión regresa
—
Steve
shopt -u extglob
lo que parece significar extglob = off
.
ssh user@host2 'shopt -p extglob'
?