【发布时间】:2010-06-09 13:05:49
【问题描述】:
我正在 Linux 系统上的两个文件系统(我们称之为 F1 和 F2)之间进行大量数据迁移,这必然涉及将数据逐字复制到 F2 上的不同结构层次结构中和 更改文件名。
我想编写一个脚本来生成在 F1 中但在 F2 中不是的文件列表,即迁移脚本未将其复制到新层次结构中的文件,这样我就可以回去手动迁移它们。不幸的是,由于不值得讨论的原因,无法修改迁移脚本以列出它不迁移的文件。我的问题与this previously answered one 不同,因为我不能依赖文件名作为比较。
我知道这个过程的基本大纲是:
- 通过 F1 递归生成所有文件的校验和列表
- 对 F2 执行相同操作
- 比较列表并生成校验和的负交集,忽略文件名,以查找 在 F1 中但不在 F2 中的文件。
我有点难以超越那个阶段,所以我很感激任何关于使用哪些工具的指示。我想我需要使用 'comm' 命令来比较文件校验和列表,但是由于 md5sum、sha512sum 等将文件名放在校验和旁边,我看不出有办法让它给我带来有用的比较。也许 awk 是要走的路?
我使用的是 Red Hat Enterprise Linux 5.x。
谢谢。
【问题讨论】:
标签: linux shell scripting checksum