我正在尝试使用 SFTP 将文件从 Windows 7 复制到 Linux Debian 文件名是回溯
我正在使用 SFTP 通过 Windows 命令提示符远程放置文件如果文件名是备份然后命令执行成功
sftp> sftpc [email protected]:xx -pw=XXXXX -cmd="put back.bak /tmp"
但如果文件名是回溯,即出现空格错误我曾尝试使用
-cmd="put 'ba ck.bak' /tmp"
但不起作用
我在 Windows 批处理文件中使用此文件,因此无法通过登录 sftp 会话并在那里执行命令来执行。我也可以通过 shell 文件执行这些命令,但我不想每次都创建新文件。
答案1
好的,我自己找到了答案。我没有在网上到处搜索,而是查看了命令的帮助,并在示例中找到了答案:
sftpc [email protected]:xx -pw=XXXXX -cmd="put \"ba ck.bak\" /tmp"
不得不逃避引语。
答案2
您必须使用“\”取消这些空格。因此您的命令将是,
sftp> sftpc [email protected]:xx -pw=XXXXX -cmd="put ba\ ck.bak /tmp"
这会让 shell 看不到文件名中的空格。