如何删除不同目录树中的重复文件?

如何删除不同目录树中的重复文件?

我有两个目录:old/new/。 中的一些文件old/是 中的文件的重复new/。 有些只是名称相同,还有一些甚至内容相同但名称不同。 我对文件的子目录路径不感兴趣,因此在匹配中只需考虑非限定文件名。

我想从 中删除重复的文件old/,以便它仅包含在 中找不到的文件new/。对于文件名匹配但内容不匹配的情况,反之亦然,我希望在某些日志中列出这种情况。

有没有人遇到过类似的问题,或者有比从头开始编写 (perl 或类似) 脚本更好的解决方案?以调用md5sum每个文件为主的运行时是可以接受的。

答案1

当然!查看FSlint

FSlint 是一个实用程序,用于查找和清除文件系统上各种形式的 lint。即文件或文件名中不需要的或有问题的垃圾。例如,它发现的一种 lint 形式是重复文件。它具有 GUI 和命令行模式。

替代文本

FSlint 是免费的开源软件。

答案2

重复项- 在给定的一组目录中查找重复的文件

fdupes new/ old/

-d 表示删除

-N 表示不问

fdupes -N -d new/ old/

相关内容