尝试从服务器中删除目录:
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/