我正在运行 Windows 10,服务器在 Debian 10 上,我正在复制苗条从我的计算机到远程服务器建立目录。我使用以下命令复制文件:
scp -r ./build [email protected]:~/directory
但总有一些文件(和整个目录)被遗漏了,我最终不得不仔细检查并手动复制它们。
远程目录。
本地目录;整个(play)
目录被删除。
我尝试使用详细参数运行它,但它没有告诉我任何特殊信息(我认为)。为什么会这样?我该如何防止这种情况发生?
答案1
我通常使用 SCP 一次传输一个文件。或者仅传输来自特定目录的符合模式的文件。从不复制完整的目录结构
对于这种情况,我会改用 Rsync。例如,以下是您的命令转换为 Rsync 等效命令:
rsync -avzh ./build [email protected]:~/directory
尝试一下。它应该有效。
答案2
我认为 SCP 需要远程服务器上存在目录结构。它不会创建文件夹。
您可以将-e
标志与 rsync 一起使用,以使用远程 shell 执行传输。
rsync -r -e "ssh -p 222" /home/test/dev [email protected]:/home/remotetest/dev
答案3
我刚刚遇到了同样的问题,很可能是由这个错误引起的:https://github.com/PowerShell/Win32-OpenSSH/issues/1897
SCP 递归复制目录结构深度超过 8 个文件夹时会失败。在目标中创建了最多 8 个目录的目录,但没有创建比 8 个目录更深的目录。根本没有复制任何文件。
就我的情况而言,实际上大多数文件都已被复制,但有些文件丢失了 - 不仅是来自 8 级以下的目录,而且来自更高级别的目录。
我的 Windows 10(包含所有更新)上出现故障的 scp 版本是 8.1.0.1。我从舀相反,它可以毫无问题地运行。