1

我刚刚将大量数据从运行 Windows 7 Ultimate 的机器复制到运行 Ubuntu Server LTS 10.04 的服务器上。我通过 PowerShell 使用 robocopy 实用程序来完成此任务,但我在网上找不到任何关于 Robocopy 是否在将复制文件复制到服务器后验证其完整性的信息。

首先,有谁知道这是否是天生的?没有明确允许您向文件传输添加验证的开关。

其次,如果没有或不确定是否有,对于具有多个文件/子目录的多个目录,最简单的方法是什么?

谢谢!

4

2 回答 2

2

我知道的最简单的机制将依赖于Windows 机器上的类 Unix 实用md5sum程序find

您可以生成文件名 / md5sums 的清单文件:

find /source -type f -exec md5sum {} \; > MD5SUM

MD5SUM文件复制到您的 Linux 机器,然后运行:

cd /path/to/destination
md5sum --quiet -c MD5SUM

您将获得失败的文件列表:

$ md5sum --quiet -c /tmp/MD5SUM 
/etc/aliases: FAILED
md5sum: WARNING: 1 of 341 computed checksums did NOT match
于 2011-12-18T10:40:38.153 回答
0

更简单的方法是使用 unix uilities diffrsync

使用 diff 可以比较两个文件,但也可以比较两个目录。使用 diff 我会推荐这个命令:

diff -r 源/目录/目标/目录

-r 强制 diff 以递归方式分析目录或

第二个选项是使用 rsync 来同步文件或目录,但使用-n选项,您也可以使用它来分析目录之间的差异。即使文件不在同一主机上,rsync 也可以工作,这意味着在一个主机上可以有远程主机,即使使用 ssh 也可以访问它。Pluss rsync 非常灵活,有很多选项可供选择

rsync -avn --itemize-changes --progress --stats 源/目录/目标/目录/
  • -n 选项使 rsync 进行“试运行”,这意味着它不会对
  • -a 选项包括“递归模式、符号链接、文件权限、文件时间戳、文件所有者参数、文件组参数
  • -v 增加详细程度
  • --itemize-changes 输出所有更新的更改摘要

在这里您可以找到更多如何比较目录的方法: https ://askubuntu.com/questions/12473/file-and-directory-comparison-tool

rsync维基百科页面上,您可以找到rsync的 Windows 替代程序

于 2013-11-21T00:14:49.500 回答