我有一台 Mac 和一台 PC,它们位于同一个局域网内。PC 正在运行 OpenSSH。
我通过以下方式将一个包含 30 GB 文件的文件夹(子文件夹)从 Mac 复制到 PC:
scp -r ~/orig_folder/* [email protected]:another_folder/
在进行某种“差异”(比较)以证明所有文件均已成功复制到 PC 之前,我犹豫着是否要从 Mac 中删除这 30 GB 的文件。
我听说过,rsync
但我认为它不能从 Mac 传输到 Windows,对吗?(我尝试了很多不同的rsync
SSH 命令。)
如果还尝试了更简单的方法计算文件数量,但存在不匹配的情况;我认为有时某些文件不会出现在两个操作系统上。文件大小显然也不同。
我怎样才能实现我的目标?
答案1
将其视为rsync
要复制哪些文件的协议,因此它不依赖于操作系统。不过,某些内容(如保留时间戳、用户/组权限等)将依赖于操作系统。
还有一个提示 - 避免使用远程目录中的空格和其他特殊字符,并从您的工作目录开始作为您要备份的文件的源,以便您可以引用它,./
而不必担心本地机器路径中的特殊字符等。
就我个人而言,我会结束这个问题并重新询问您是否仍然遇到使用问题rsync
,包括您的rsync
命令等。
答案2
我发现Beyond Compare 4 Pro(适用于 Windows 10)轻松做到这一点。
在 Mac 上,我启用了远程登录。然后我使用 BC4Pro 比较文件夹:
- K:\原始文件夹\part1\
- sftp://[电子邮件保护]/第1部分/
它发现我最初的 SCP 传输似乎省略了一个在 Mac 上以星号开头的子文件夹:“*Preliminaries”。
此外,Mac 上存在许多名为“.DS_Store”和“Icon”的文件,这些文件从未复制到 PC 上,但我认为这些都是无关紧要的操作系统特定文件。
旧尝试:
从 Mac 终端来看,关键可能是像这样运行它,而不使用星号:
rsync -aichzvn --rsync-path="C:\HashiCorp\Vagrant\embedded\usr\bin\rsync.exe" orig_folder/ [email protected]:part1sub/
(看https://serverfault.com/a/852335/119666)
...然后也以相反的方向运行它(仍然在 Mac 终端中,但计算机文件夹位置的顺序已切换,以便远程 PC 列在本地 Mac 文件夹之前)。
但我无法让它工作。