Как получить список дублирующихся по имени файлов [Debian]?

Здравствуйте хабрпользователи, задача заключается в след.:


Необходимо найти рекурсивно файлы с разным регистром в названиях

Допустим:
/home/user/test/Te<b>S</b>T.xml<br/>
/home/user/test/TesT.xml<br/>
<br/>
/home/user/test/first/test<br/>
/home/user/test/first/<b>T</b>est<br/>



А так же директории одинаковые по имени, но разные по регистру
/home/user/test/<b>F</b>irst/test<br/>
/home/user/test/first/test<br/>


и просто вывести их в log файлик.


Рыл в сторону find, grep, fslint, fdupes безуспешно (не получилось реализовать то, что хотелось).
fdupes вывел очень много дубликатов (15тыс строк). Как я понял, он проверяет размер файла и md5. Мне же нужно просто по имени.


У кого какие есть идеи? Примеры.

Заранее спасибо.
  • Вопрос задан
  • 3218 просмотров
Пригласить эксперта
Ответы на вопрос 5
bagyr
@bagyr
find. | tr '[:upper:]' '[:lower:]' | uniq -d
Ответ написан
sledopit
@sledopit
sort нужен точно. А на трёх файлах прокатило, потому что повезло. Если бы файлы с похожими именами были бы первым и последним, то не сработало бы.
зы. ради интереса сравните
echo -e "111\n222\n111\n333\n123" | uniq -d
echo -e "111\n222\n111\n333\n123" | sort | uniq -d
Ответ написан
ursul
@ursul Автор вопроса
Решение есть =) Меня вполне устраивает.
Можно в принципе допилить, но команда отработала на 150тыс. файлах корректно.

Если кому интересно, вот пример
for f in `find . | tr '[:upper:]' '[:lower:]' | sort | uniq -d`; do find . -iwholename $f; done


Спасибо, bagyr за подсказку.
Ответ написан
Alukardd
@Alukardd
С учётом выше сказанного я просто переписал Ваш вариант.
IFS=$'\n'; for f in $(find /tmp/testdir | sort | uniq -di); do find /tmp/testdir -iwholename "$f"; done
Ответ написан
Комментировать
ursul
@ursul Автор вопроса
=) Спасибо за переписанный скрипт. Уже все отработало и без цикла по директориям, дабы не нагружать машинку.
По поводу пробелов в именах. На это не обращал внимание, т.к. была 146% гарантия, что файлы без пробелов. Но для заинтересовавшихся моим вопросом, думаю будет полезно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы