![Linux 命令行/应用程序用于比较文件夹集](https://linux22.com/image/1434691/Linux%20%E5%91%BD%E4%BB%A4%E8%A1%8C%2F%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%94%A8%E4%BA%8E%E6%AF%94%E8%BE%83%E6%96%87%E4%BB%B6%E5%A4%B9%E9%9B%86.png)
我把很多照片整理到文件夹中。我还有一个“未分类”文件夹,里面存放整理前的照片。我发现,许多(但不是全部)未分类的照片现在都整理好了,但并未从未分类中删除。
我想通过命令行或其他方式查找未分类中在其他文件夹中重复的所有文件(这样我就知道哪些文件可以安全删除)。理想情况下,解决方案将使用 MD5(或类似方法)来确保真正的重复。但是,仅文件名是一个好的开始。
有人能提供一些如何在命令行上完成此操作的提示吗?或者推荐一些可以提供帮助的软件?
谢谢!
答案1
您可以使用:
find -not -empty -type f -printf "%s\n" | sort -rn | uniq -d | xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate
(用 sha512sum 替换 md5sum 以避免冲突)
或者像 fslint、fdupes 这样的“lint”工具