例如:
我有 2 个文件夹:one
和two
。
执行以下任务的命令或脚本是什么:
- 检查(及其子文件夹)
sha256sum
中的所有文件。然后将它们的校验和写入。one
one.txt
- 检查(及其子文件夹)
sha256sum
中的所有文件。然后在 中写入它们的路径和校验和。two
two.txt
- 对于 中的每个校验和
one.txt
,在 中找到它two.txt
。如果 中存在该校验和two.txt
,则使用该校验和重命名 中的文件two
。(fullfilename
变为fullfilename.dupdupdup
)
答案1
如果文件名中没有换行符,这应该有效:
grep \
-f <(find one -type f -exec sha256sum {} + | awk '{print $1}') \
<(find two -type f -not -name "*.dupdupdup" -exec sha256sum {} +) \
| cut -c 67- \
| xargs -I{} mv {} {}.dupdupdup