Я должен установить свой ZFS (использующий FreeBSD 10) для файлов иностранного языка (например, имена файлов на японском/Тайском/и т.д. языке)?

Можно добавить файл к системе /etc/profiile.d каталог, который включает a if/then оператор для каждого из пользователей, которых Вы хотите выполнить virtualenv для.

Пример

Скажите, что я создаю файл как это, /etc/profile.d/me.sh.

if [ "$USER" == "saml" ]; then
  touch /tmp/samsfile
fi

Сделайте это исполняемым файлом:

$ chmod +x /etc/profile.d/me.sh

И затем вход в систему как saml, использование su:

$ su saml

Если мы проверяем, чтобы видеть, был ли временный файл создан, это было:

$ ls -l /tmp/samsfile 
-rw-rw-r-- 1 saml saml 0 Oct 14 00:31 /tmp/samsfile
3
22.07.2014, 05:21
1 ответ

В настоящее время ZFS имеет ограничение на имена в 255 байтов. Если вы решите использовать имена UTF-16, вы получите ограничение в 127 символов. UTF-8, OTOH может кодировать японский / корейский 3-байтовый символ, что еще больше ограничивает вас (255/3 = 85).
Мне не известны другие проблемы, кроме более медленной индексации 3-байтовых строк символов UTF-8 по сравнению со строками 2-байтовых символов UTF-16.

Итак - если все имена в UTF8 - продолжайте и установите 2 свойства. Если вы используете UTF16, не делайте этого.

Обратите внимание, что UTF8 имеет специальную обработку в коде (zol, а не * bsd, но кодовая база такая же). Я бы, вероятно, установил utf8only для принудительного преобразования в utf8 и нормализацию, чтобы позволить правильное сравнение имен файлов.

2
27.01.2020, 21:28

Теги

Похожие вопросы