Я только что установил несколько пакетов Arch Linux, которые выгружали этот файл на мой диск:
/etc/ssl/certs/EBG_Elektronik_Sertifika_Hizmet_Sağlayıcısı.pem
Обратите внимание, что имя файла содержит турецкие символы. Вот разные команды с их выводом:
> cd /etc/ssl/certs
> echo EBG*
EBG_Elektronik_Sertifika_Hizmet_Sağlayıcısı.pem
> ls -al EBG*
lrwxrwxrwx 1 root root 86 Nov 3 22:27 EBG_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??.pem -> /usr/share/ca-certificates/mozilla/EBG_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??.crt
Q1: Почему echo
и ls
выдают разные результаты?
Так что это символическая ссылка. Если я разыграю это:
> ls -alL EBG*
-rw-r--r-- 1 root root 2106 Sep 24 22:52 EBG_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??.pem
Давайте посмотрим на цель:
> cd /usr/share/ca-certificates/mozilla
> echo EBG*
EBG_Elektronik_Sertifika_Hizmet_Sağlayıcısı.crt
> ls -al EBG*
-rw-r--r-- 1 root root 2106 Sep 24 22:52 EBG_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??.crt
Q2: Какая кодировка используется для не-ASCII символов в файловой системе Linux (здесь: ext4)? Правильно ли я понимаю, что кодировка нигде не фиксируется, и если я дам вам какой-нибудь случайный жесткий диск без инструкций, вам нужно угадать, какую кодировку я использовал?
Я заметил, что возникла проблема, потому что pacman
(менеджер пакетов Arch Linux), похоже, запутался в том, установил ли он этот файл:
Q3: Как я могу предотвратить pacman
, ls
или чем-то еще в таких файлах? Что если на следующей неделе какой-нибудь файл будет арабским или ивритом, а не турецким?