TLDR Linha de fundo, eles não fazem nada quando usados juntos; -dD é idêntico a -D .
Pesquisa
Se você observar a lógica de caso / troca do comando uniq.c , poderá ver isso em primeira mão:
case 'd':
output_unique = false;
output_option_used = true;
break;
case 'D':
output_unique = false;
output_later_repeated = true;
if (optarg == NULL)
delimit_groups = DM_NONE;
else
delimit_groups = XARGMATCH ("--all-repeated", optarg,
delimit_method_string,
delimit_method_map);
output_option_used = true;
break;
A maneira como esse código é estruturado, se -dD for definido, ouput_unique será definido como falso; mas mais importante, output_later_repeated está definido como verdadeiro.
Quando essa condição for definida, output_later_repeated , não há nenhuma maneira possível de -dD ter nada além de uma saída idêntica a -D .
Por acaso, a página man computerhope do homem tem uma tabela melhor que explica as opções -d e -D .