Scape引用远程命令

时间:2016-01-11 17:03:15

标签: bash escaping

我试图在远程服务器上传递一个commadn。

命令在本地服务器上工作正常,但是当尝试传递远程服务器时,ssh得到错误的scpaing错误

ls -t /root/mysql/*.sql | awk 'NR>2 {system(\"rm \"" $0 \"\"")}'

完整的comnand

ssh root@host -p XXX "mysqldump --opt --all-databases > /root/mysql/$(date +%Y%m%d%H%M%S).sql;ls -t /root/mysql/*.sql | awk 'NR>2 {system(\"rm \"" $0 \"\"")}'"

1 个答案:

答案 0 :(得分:1)

实际上不需要使用awk并避免所有引用转义:

ls -t /root/mysql/*.sql | tail -n +1 | xargs rm

这是假设您的*.sql文件没有任何空格,否则您应该使用stat命令并使用sort对输出进行排序。< / p>