Я использую файловую систему 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
Это часто делает его чрезвычайно запутанным, поскольку у вас может быть несколько файлов с именами, которые выглядят полностью идентичными.
Так:
- Можно ли преобразовать последний в первый? (так что я могу сделать массовое переименование)
- Можно ли сделать такое автоматическое переименование на уровне файловой системы?
Благодарю.