Я использую файловую систему ext4 под Linux.

Некоторые символы UTF-8 объединяют символы, которые используются для изменения других символов, и иногда они могут быть фактически объединены в базовый символ.

Например,

$ 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 ド

... эти два имени файла выглядят совершенно одинаково (и имеют одинаковое значение), но на самом деле второе содержит объединяющий символ U+3099 .

$ 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

Это часто делает его чрезвычайно запутанным, поскольку у вас может быть несколько файлов с именами, которые выглядят полностью идентичными.

Так:

  1. Можно ли преобразовать последний в первый? (так что я могу сделать массовое переименование)
  2. Можно ли сделать такое автоматическое переименование на уровне файловой системы?

Благодарю.

0