Automatische Zusammenführung von Zeichen zu Basiszeichen in Dateinamen?

361
Frederick Zhang

Ich verwende das ext4-Dateisystem unter Linux.

Einige UTF-8-Zeichen sind kombinierende Zeichen, die zum Ändern anderer Zeichen verwendet werden, und manchmal können sie tatsächlich mit dem Basiszeichen zusammengefügt werden.

Zum Beispiel,

$ ls -l total 0 -rw-r--r-- 1 user user 0 Mar 28 02:58 ド -rw-r--r-- 1 user user 0 Mar 28 02:58 ド 

... diese beiden Dateinamen sehen genau gleich aus (und sie haben exakt dieselbe Bedeutung), aber tatsächlich hat der zweite einen U + 3099- Kombinationszeichen.

$ find . -maxdepth 1 -type f -print0 | sort -z | xargs -r0 -I@ bash -c 'echo -n -e "@\t" && echo -n "@" | tr -d './' | xxd -pu' ./ド e38389 ./ド e38388e38299 

Dies macht es oft sehr verwirrend, da Sie möglicherweise mehrere Dateien haben, deren Namen völlig identisch aussehen.

So:

  1. Kann man den letzteren in den ersten umwandeln? (so kann ich Massenumbenennung machen)
  2. Kann man diese Art der automatischen Umbenennung auf Dateisystemebene durchführen?

Vielen Dank.

0
@Grawity Genau das was ich brauche! Vielen Dank! Frederick Zhang vor 6 Jahren 0

0 Antworten auf die Frage