linux - 找到 : missing argument to -exec with ssh

标签 linux bash ssh exec

尝试从服务器中删除目录:

ssh myname@servera ssh othername@serverb find /var/lib/jenkins/some/path/to/check -name 2.2.4* -type d -exec rm -r {} ;

我试过 \;\;;;"{}"-exec sh -c 'rm -r "{}"'\;

全部得到错误 find: missing argument to "-exec'"

谢谢

最佳答案

当您想使用特殊字符时,使用 ssh 直接运行命令通常很难甚至是不可能的。这是因为ssh远程调用sh -c "<<COMMAND HERE>>" .这会导致字符被引用/取消引用两次,有时甚至会被删除。

您最好的选择是在远程系统上使用您的命令创建一个临时文件并执行它:

echo 'find /var/lib/jenkins/some/path/to/check -name 2.2.4* -type d -exec rm -r {} \;' > script
scp script myname@servera:
ssh myname@servera bash script

在您的情况下,您可以使用查找的 -delete命令而不是 -exec .

关于linux - 找到 : missing argument to -exec with ssh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50855509/

相关文章:

linux - 将段落粘贴到 Nano 编辑器中

linux - intellij Linux 字体

c - 如何使用 C 获取 Linux 中的 CPU 数量?

linux - 使用 xargs 和 xargs -0 的 Bash 命令

Linux - 使用 RS485 进行串行通信

ruby - net::scp 复制/覆盖文件夹

linux - 版本控制软件将保留 POSIX FS (ext3/ext4) 中的所有文件及其元数据

bash - 没有 bc 的 bash 脚本中的除法数学?

linux - 通过 SSH 将一个文件夹 tar 成多个文件

python - 通过python在脚本中使用密码ssh到远程机器