比较并重命名两个文件夹之间的重复文件

比较并重命名两个文件夹之间的重复文件

例如:

我有 2 个文件夹:onetwo

执行以下任务的命令或脚本是什么:

  • 检查(及其子文件夹)sha256sum中的所有文件。然后将它们的校验和写入。oneone.txt
  • 检查(及其子文件夹)sha256sum中的所有文件。然后在 中写入它们的路径和校验和。twotwo.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

相关内容