Я понимаю, как fdupes работает для поиска и отображения дубликатов файлов при сравнении двух каталогов, я хотел бы знать, как сделать противоположное, то есть отобразить все без исключения не совпадающие файлы в вывод может fdupes сделать это, или есть другая программа, которая может сделать это лучше? (ps мне нужно, чтобы сравнения делались так же, как fdupes, либо с суммами md5, либо с побитовым сравнением между файлами)
Я думал о добавлении этой опции к rmlint некоторое время (но никто не попросил его до сих пор). Я создал тестовое ответвление, которое теперь имеет эту опцию (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 использует SHA-1 по умолчанию, который приблизительно в 4 миллиарда раз более силен, чем md5. Можно обновить это до SHA-512 путем добавления -p
к командной строке, или можно сделать сравнение байта байтом вместо этого путем добавления -pp
(хотя это уничтожает немного больше RAM).