Es gibt zwei Möglichkeiten:
Wie gefragt: Versuchen Sie, den Dateinamen in NFD umzuwandeln, und prüfen Sie, ob Sie dieselbe Ausgabe als Eingabe erhalten. Wenn Sie dies tun, ist der Dateiname bereits NFD.
Nützlicher: Versuchen Sie, den Dateinamen in NFC zu konvertieren, und prüfen Sie, ob Sie dasselbe Ergebnis erhalten. Wenn Sie dies nicht tun, lautet der Dateiname entweder NFD oder NFKC oder NFKD oder etwas gemischt / fehlerhaft, aber immer noch nicht ganz NFC.
Um betroffene Dateien zu finden und umzubenennen, verwenden Sie convmv :
convmv -f utf-8 -t utf-8 --nfc ...
Für etwas, das leichter skriptfähig ist, können Sie Perls Unicode :: Normalize verwenden :
find -type f | perl -C -MUnicode::Normalize -n -e'print if $_ eq NFD($_)'
So suchen Sie alle Nicht-NFC-Namen (einschließlich NFD und nicht normalisiert):
find -type f | perl -C -MUnicode::Normalize -n -e'print if $_ ne NFC($_)'