如何跨单独的目录树删除重复文件?

P-N*_*uts 10 linux

我有两个目录:old/new/. 中的某些文件与 中的文件old/重复new/。有的只是名称相同,有的甚至可能内容相同但名称不同。我对文件的子目录路径不感兴趣,所以在匹配中只需要考虑一个不合格的文件名。

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

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

小智 8

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

fdupes new/ old/
Run Code Online (Sandbox Code Playgroud)

-d 删除

-N 不问

fdupes -N -d new/ old/
Run Code Online (Sandbox Code Playgroud)


Joh*_*n T 7

当然!查看FSlint

FSlint 是一个实用程序,用于在文件系统上查找和清理各种形式的 lint。IE 在您的文件或文件名中出现不需要的或有问题的残留物。例如,它找到的一种形式的 lint 是重复文件。它具有 GUI 和命令行模式。

替代文字

FSlint 是免费的开源软件。