find . -type f -print0 | xargs -0 -n1 md5sum | sort -k 1,32 | uniq -w 32 -d --all-repeated=separate | sed -e 's/^[0-9a-f]*\ *//;'
Команда «find . -type f -print0» ищет все файлы в текущем каталоге и его подкаталогах и выводит их имена, разделенные символом «нуль» (-print0).
Этот вывод передается через символ «|»(pipe) команде «xargs -0 -n1 md5sum», которая берет каждое имя файла и вычисляет его хэш-сумму MD5 с использованием команды «md5sum».
Затем команда «sort -k 1,32» сортирует вывод по хэш-сумме, которая находится в первых 32 символах каждой строки.
После этого команда «uniq -w 32 -d —all-repeated=separate» фильтрует повторяющиеся строки, оставляя только строки с дублирующимися хэш-суммами. Флаг «-w 32» указывает, что сравнение двух строк нужно производить только по первым 32 символам. Флаг «—all-repeated=separate» позволяет отображать каждый дубликат в отдельной строке.
В конце команда «sed -e ‘s/^[0-9a-f]*\ *//;'» удаляет хэш-сумму из каждой строки, оставляя только пути к дублирующимся файлам.
Эта команда полезна для поиска дубликатов файлов на компьютере. Альтернативой может быть использование специальных программ для поиска дубликатов файлов, которые предоставляют более детальную информацию о дубликатах и предлагают варианты действий, такие как удаление или перемещение дубликатов.
