Русские символы в именах файлов и директорий

Если пробелы есть в имени, то надо писать с кавычками. Иначе создаться столько директорий, сколько слов. Пример правильной команды. mkdir "книга - Самолет Ил-14Т военно-транспортный вариант - техническое описание"

Чужие файловые системы
Иначе, русские имена будут недоступны. Файлы с русскими именами, созданные во FreeBSD нормально отображаются в MS Windows.

FAT и UTF
mount_msdosfs -D UTF-8 -L en_US.UTF-8 /dev/da4s1 /mnt

NTFS и UTF
mount_ntfs -C utf-8 /dev/ad8s2 /mnt

Если не указать кодировку, то xterm показывает - вместо русских названий. urxvt (rxvt-unicode) тоже рисует палки.

Но все равно в отдельных местах вылехзают какие-то сущности в виде ???? Похоже, опять проблема с символом номер /mnt2/Со старого винтчестера/Сохранённые документы/Галя/Галина/Application Data/Microsoft/Office/Последние файлы/Школа ?172.LNK: No such file or directory

xterm будет давать вводить и показывать русский, когда в контекстном меню UTF-8 Encoding выбрано.

ntfs-3g -o rw,locale=ru_RU.UTF-8 /dev/ad0s1 /media

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

Процедура настройки описана здесь - Русский язык в консоли

Настройки монтирования
русскоязычные названия были доступны, надо правильным образом смонтировать файловую систему командой mount. mount_cd9660 -C koi8-r /dev/acd0t01 /mnt/ mount_ntfs -C koi8-r /dev/da4s1 /mnt/ mount_msdosfs -Wkoi2dos /dev/da6s1 /mnt/

Конвертация имен файлов
Если кодировка, использованная в именах файлов, отличается от той что выставлена в вашей операционной системе, потребуется выполнить конвертацию, чтобы русский язык отображался нормально. Для конвертации используется iconv либо convmv.

Запуск без выполнения конвертации, чтобы убедиться что кодировка верно указана: convmv -r -f CP1251 -t KOI8-R * "mv 'гЕЛТХПЮ/1999 - гЕЛТХПЮ/02 - яМЕЦ.mp3'     'гЕЛТХПЮ/1999 - гЕЛТХПЮ/02 - Снег.mp3'" После этого можно добавить --notest и выполнить конвертацию.

Если русский язык появился, то запускаем саму конвертацию, добавив ключ --notest convmv --notest -r -f UTF8 -t KOI8-R *

Если кодировки неверно указаны, например, попытка вместо UTF указать KOI, получим следующий вывод команды (причем, для каждого имени, если только для нескольких, то проблема, скорее всего, в символе № - см. ниже).: koi8-r doesn't cover all needed characters for: "Zykina/п╞ я│п╢п╟п╩п╟ п╣пЁп╬.mp3" To prevent damage to your files, we won't continue. First fix this or correct options!

Источники файлов и выбор кодировки
Файлы с неверными именами могут появляться в следующих ситуациях: Он в основном создает в UTF8, но встречается и CP1251 (видимо зависит от того как создавали торрент-файл, а не от программы-клиента). convmv -r -f UTF8 -t KOI8-R * convmv -r -f CP1251 -t KOI8-R * convmv -r -f CP866 -t KOI8-R *
 * при получении файлов посредством торрент-клиента, например ctorrent
 * при распаковке rar и zip-архивов созданных в MS Windows, в случае rar, программаunrar порождает файлы в кодировке CP866

Проблемы
Если в имени файла встречается символ №, то конвертировать их он отказывается, а вместе с ними и все остальные. При этом отображается он как п и понять, где именно он и убрать его - не получается.

Вручную переименовываю, давая английские названия. После конвертации уже прописываю им русские. Такая же боязнь символа № наблюдается и у iconv, которая прекращает работу, когда встречает этот символ (но, используя опцию -c, можно преодолеть этот страх).

Траслитерация имен
ls|tr 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя' 'ABVGDEEJZIIKLMNOPRSTUFHCSSS_I_EUYabvgdeejziiklmnoprstufhcsss_i_euy' 01. Prosti, prosai.mp3 02. Pianistka.mp3

Проблемы
Если будет символ № в имени файла, то как не монтируй - его не прочитать.

Русские символы в IDv3 mp3-файлов
audio/EasyTag - Перезаписать в UTF8 или KOI (?), указав как Charset for reading - CP1251

find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1