LINUX.ORG.RU

История изменений

Исправление saahriktu, (текущая версия) :

Если имена файлов уже в cp1251, то выставить лучше cp1251. Для этого надо выполнить

export LANG="ru_RU.CP1251"
Ещё может потребоваться настроить эмулятор терминала на работу с cp1251. В иксовых эмуляторах терминала кодировка может выставляться на лету. Зависит от реализации. В случае ядерной консоли придётся настраивать отдельно.

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

#!/bin/bash
NEWFNAME=`echo "$1" | iconv -c -f cp1251 -t utf-8`
if [ "$1" != "$NEWFNAME" ]; then
mv -i "$1" "$NEWFNAME"
fi
Допустим, имя файла этого скрипта ~/cp1251toutf8. Тогда можно просто перейти в директорию с файлами и выполнить
find . -type f -exec ~/cp1251toutf8 "{}" \;
Да, с вложенными директориями такое не сработает. Но, без вложенных директорий и такая реализация должна сработать.

После переименования можно будет вернуть обратно UTF-8.

Исходная версия saahriktu, :

Если имена файлов уже в cp1251, то выставить лучше cp1251. Для этого надо выполнить

export LANG="ru_RU.CP1251"
Ещё может потребоваться настроить эмулятор терминала на работу с cp1251. В иксовых эмулятор терминала кодировка может выставляться на лету. Зависит от реализации. В случае ядерной консоли придётся настраивать отдельно.

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

#!/bin/bash
NEWFNAME=`echo "$1" | iconv -c -f cp1251 -t utf-8`
if [ "$1" != "$NEWFNAME" ]; then
mv -i "$1" "$NEWFNAME"
fi
Допустим, имя файла этого скрипта ~/cp1251toutf8. Тогда можно просто перейти в директорию с файлами и выполнить
find . -type f -exec ~/cp1251toutf8 "{}" \;
Да, с вложенными директориями такое не сработает. Но, без вложенных директорий и такая реализация должна сработать.

После переименования можно будет вернуть обратно UTF-8.