如何仅在 fdupes 中查看不匹配的文件?

如何仅在 fdupes 中查看不匹配的文件?

我了解 fdupes 在比较两个目录时如何查找和显示重复文件,我想知道的是如何做相反的事情,即显示任何和所有输出中的匹配文件 fdupes 可以做到这一点,或者是否有其他程序可以做得更好?(ps 我需要以与 fdupes 相同的方式进行比较,要么使用 md5 总和,要么使用文件之间的按位比较)

答案1

我一直在考虑将这个选项添加到林特有一段时间了(但直到现在才有人要求它)。我创建了一个测试分支,现在有这个选项(https://github.com/SeeSpotRun/rmlint/tree/feature/uniques)。

如果您想尝试一下,您需要按如下方式安装:


  1. 如果尚未安装依赖项,请安装它们:
$ sudo apt-get install git scons python3-sphinx python3-nose gettext build-essential
$ sudo apt-get install libelf-dev libglib2.0-dev libblkid-dev libjson-glib-1.0 libjson-glib-dev
  1. 获取测试分支源码:
$ cd ~
$ git clone -b feature/uniques https://github.com/SeeSpotRun/rmlint.git
$ cd rmlint/
  1. 编译并(可选)安装:
$ scons config
$ scons DEBUG=1 -j4
$ sudo scons DEBUG=1 -j4 --prefix=/usr install
$ # (if you skip the install step then replace 'rmlint' with './rmlint' below)
  1. 查找唯一文件(不会删除任何内容):
$ # this will display unique files on your screen:
$ rmlint -o uniques path/to/your/files
$ # or use either of the following to write a list of unique files to unique.txt:
$ rmlint -o uniques:unique.txt path/to/your/files
$ rmlint -o uniques path/to/your/files > unique.txt

dir2如果你想要其中的文件列表dir1有一个双胞胎标签dir2 使用//作为分隔符并将-k(或--keep-all-tagged)添加到命令中:

$ rmlint -k -o uniques dir1 // dir2

(请注意,如果 dir2 中有两个相同的文件,但它们在 dir1 中没有副本,则它们仍将在最后一个示例中列为“唯一”)

  1. 让我们知道进展如何。如有任何问题或建议,请在此处或我们的邮箱中回复问题日志

请注意,在上面的例子中,如果你有两个名称不同但内容相同的文件,它们将不是被标记为唯一。如果您希望将它们标记为唯一的,请添加-b--match-basename添加到命令行。

关于 md5 和等:rmlint 用途SHA-1默认情况下,它比 md5 强 40 亿倍。你可以将其升级到SHA-512通过添加-p到命令行,或者您可以通过添加进行逐字节比较-pp(尽管这会占用更多的 RAM)。

相关内容