Описание тега clt
Если вы находитесь в спешке (или у вас есть много файлов) и хотите избежать накладных расходов на сортировку (это требует времени), но не против памяти в хэш-таблицу (или у вас много оперативной памяти с большим количеством файлов),
найти . -тип F -print0 команды | команды xargs -0 команду md5sum | у awk 'ч[$1]{ функции printf "%ы\0", 2$; Далее }{ ч[$1] = $2 }' | команды xargs -0 РМ
найти . -тип F -print0 команды
: найти все файлы и выводить их с нулем имена
команды xargs -0 команду md5sum
: вычисление хэшей параллельно (настройка -Н
Макс-args и -П
Макс-прокся по желанию, см. человек команды xargs
)
на awk 'ч[$1]{ функции printf "%ы\0", $2; Далее }{ ч[$1] = $2 }'
: Если есть запись в awk и хеш-таблицы, содержащие программы md5sum мы сейчас просматривает, затем распечатайте именем мы в настоящее время смотрим, оканчивающуюся нулем. В противном случае, добавить имя файла в хэш-таблице.
команды xargs -0 РМ
: взять по конвейеру-в значение null строк и отправить их в РМ.
Это намного быстрее, чем fdupes.
Если у вас есть именем, которое содержит строки, awk будет, наверное, обрезать его в строку с программы md5sum тоже разделяет записи на строки.
Это основано на https://stackoverflow.com/questions/11532157/remove-duplicate-lines-without-sorting и https://stackoverflow.com/questions/9133315/how-can-i-output-null-terminated-strings-in-awk