Existem duas maneiras:
-
Conforme solicitado: tente converter o nome do arquivo em NFD e veja se você obtém a mesma saída que a entrada. Se você fizer isso, o nome do arquivo já é NFD.
-
Mais útil: tente converter o nome do arquivo para NFC e veja se você obtém o mesmo resultado. Se você não o fizer, o nome do arquivo será NFD ou NFKC ou NFKD ou algo misto / malformado, mas ainda assim não será exatamente NFC.
Para localizar e renomear arquivos afetados, use convmv :
convmv -f utf-8 -t utf-8 --nfc ...
Para algo mais fácil de escrever, você pode usar o Unicode :: Normalize do Perl:
find -type f | perl -C -MUnicode::Normalize -n -e'print if $_ eq NFD($_)'
Para localizar todos os nomes não-NFC (incluindo NFD e não-normalizados):
find -type f | perl -C -MUnicode::Normalize -n -e'print if $_ ne NFC($_)'