Вы не сортируете файл перед его фильтрацией. Из справочной страницы:
Примечание:
uniq
не обнаруживает повторяющиеся строки, если они не являются смежными. Вы можете сначала отсортировать ввод или использоватьsort -u
безuniq
. Кроме того, сравнения соблюдают правила, указанные вLC_COLLATE
.
Вам также необходимо обработать все строки, которые вы хотите подсчитать, за один раз. В настоящее время вы обрабатываете типы файлов по одному, поэтому uniq -c
правильно говорит вам, что у вас есть по одному из каждого типа — он всегда видит только один тип файла за раз.
file * | sort | uniq -c
было бы более подходящим (предположительно с более конкретным глобусом или даже списком файлов для обработки).
Я думаю, вы можете сделать что-то вродеgit annex get
Вы также можете попробовать включить « прямой режим », что должно вернуть ваши файлы в рабочее дерево вместо символических ссылок.