scp 命令未完全复制目录内容

scp 命令未完全复制目录内容

我正在运行 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。我从相反,它可以毫无问题地运行。

相关内容