Когда я запускаю fdupes
, он находит более 30 000 дубликатов файлов. Мне нужно сохранить один файл и удалить все остальные дубликаты (потому что некоторые из них являются системными файлами). Пожалуйста, дайте мне команду или скрипт, чтобы сделать это, не нажимая «1 или 2 или все» для каждой группы дубликатов файлов.
Можно сделать это, если Вы хотите выполнить это тихо (я только что использовал его для очистки 150 ГБ простофиль, работающих rackspace блочная система хранения.. ВЈkerching!!)
fdupes -rdN dir/
r - recursive
d - preserver first file, delete other dupes
N - run silently (no prompt)
fdupes
имеет богатый CLI:
fdupes -r ./stuff > dupes.txt
Затем удаление дубликатов было так же легко как проверка dupes.txt
и удаление незаконных каталогов. fdupes
также может предложить Вам удалять дубликаты, как Вы продвигаетесь.
fdupes -r /home/user > /home/user/duplicate.txt
Вывод команды входит duplicate.txt
.
fdupes
сравнит размер и хеш MD5 файлов для нахождения дубликатов.
Проверка fdupes
страница справочника для подробной информации об использовании
Я использовал бы этот более безопасный путь:
Создают сценарий и перемещают дублированные файлы в новую папку. Если Вы переместитесь в папку вне исходной папки, то fdupes не сообщит о дублированных файлах относительно второго сканирования, и будет более безопасно удалить их.
#!/bin/bash
# Save default separator definitions
oIFS=$IFS
# define new line as a separator, filenames can have spaces
IFS=\n';
# For each file (f) listed as duplicated by fdupes, recursively
for f in `fdupes -r -f .`
do
# Log the files I'm moving
echo "Moving $f to folder Duplicates" >> ~/log.txt
# Move the duplicated file, keeping the original in the original folder
mv $f Duplicates/
done
# restore default separator definitions
IFS=$oIFS
Я использовал fslint и DupeGuru в течение достаточно долгого времени.
Оба могут обработать> 10 000 файлов/папок