我正在尝试使用 SSH 从远程主机中删除/path/to/dir/除两个目录 (dir1和dir2)之外的所有文件和目录。当我在本地 Ubuntu 14.04 机器上运行与此类似的命令时,它按预期工作:
user@host1:~$ cd /path/to/dir/ && rm -rf !(dir1|dir2)
Run Code Online (Sandbox Code Playgroud)
如果我尝试在具有相同目录结构的另一台主机上通过 SSH 执行相同的命令,则会失败。
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)'
Run Code Online (Sandbox Code Playgroud)
我应该如何转义命令以使其工作?我认为使用单引号就足够了。