Я понимаю, как fdupes работает для поиска и отображения дубликатов файлов при сравнении двух каталогов, но мне бы хотелось узнать, как сделать наоборот, то есть отобразить все и вся.несопоставляя файлы в выводе, может ли fdupes сделать это, или есть другая программа, которая может сделать это лучше? (P.S. Мне нужно, чтобы сравнения выполнялись таким же образом, как fdupes, либо с помощью сумм md5, либо с помощью побитового сравнения между файлами)
решение1
Я думал о добавлении этой опции врмлинтнекоторое время (но никто не просил об этом до сих пор). Я создал тестовую ветку, которая теперь имеет эту опцию (https://github.com/SeeSpotRun/rmlint/tree/feature/uniques).
Если вы хотите попробовать, вам необходимо установить его следующим образом:
- Установите зависимости, если у вас их еще нет:
$ 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
- Возьмите исходный код тестовой ветки:
$ cd ~
$ git clone -b feature/uniques https://github.com/SeeSpotRun/rmlint.git
$ cd rmlint/
- Скомпилируйте и (опционально) установите:
$ 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)
- Найти уникальные файлы (ничего не удаляется):
$ # 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, они все равно будут указаны как «уникальные» в последнем примере)
- Дайте нам знать, как все прошло. Если у вас возникли проблемы или предложения, пишите здесь или на нашемжурнал проблем
Имейте в виду, что в приведенных выше примерах, если у вас есть два файла с разными именами, но одинаковым содержимым, они будутнетбыть отмечены как уникальные. Если выделатьхотите, чтобы они были помечены как уникальные, добавьте -b
или --match-basename
в командную строку.
Относительно сумм md5 и т.п.: rmlint используетША-1по умолчанию, что примерно в 4 миллиарда раз сильнее, чем md5. Вы можете обновить его доША-512путем добавления -p
в командную строку, или вы можете выполнить побайтовое сравнение вместо добавления -pp
(хотя это займет немного больше оперативной памяти).