Поиск одинаковых файлов, на линуксе.
Код взят из книги "LINUX Командная строка" Джей Баретт
Мы находимся в папке test в ней есть дублирующиеся файлы, для начала начнем с разведки.
$ ls
$ md5sum *
Вычислив с помощью md5sum, контрольные суммы файлов, мы видим, что имеются дублирующиеся файлы, т.к. их контрольные суммы совпадают, это легко увидеть если 5 файлов всего, в папке....А, что делать если их там тысячи?
Для начала обрежем в выводе имена файлов, они для анализа нам не нужны. И отсортируем полученный результат.
$ md5sum * | cut -c1-32 | sort
Так как, мы лентяи и нам лень считать число повторяющихся копий, предоставим эту работу компьютеру.
$ md5sum * | cut -c1-32 | sort | uniq -c
Индекс 1 возле контрольной суммы говорит нам, что копий у данного файла, в текущей папке у нас нет....Но у нас в виртуальной папке в нашей голове, их тысячи, и поиск займет много времени...так , что отсортируем их по убыванию, что бы повторяющиеся файлы были вверху списка.
$ md5sum * | cut -c1-32 | sort | uniq -c | sort -nr
Теперь удалим, все ненужное в выводе терминала, что бы ни что нас не отвлекало от поставленной цели.
$ md5sum * | cut -c1-32 | sort | uniq -c | sort -nr | grep -v " 1 "
Но извентиляюсь, нам нужны не контрольные суммы, а файлы :-) Поэтому копируем контрольную сумму, и ищем файлы в каталоге с ней.
$ md5sum * | grep c8303abab274ff40b3c210a52cdeca13
$ md5sum * | grep c8303abab274ff40b3c210a52cdeca13 | cut -c35-
Имеем имена дубликатов... решаем, какой из-них удалить....но это совсем уже другая история.