KARTz.RU
кушаешь морковь – встанет вновь и вновь

Аргумент для convmv

Январь 19th, 2010

Довелось недавно скачать кривой торрент. Выражалась эта кривость в неверной кодировке имён файлов. В итоге получилось что-то такое:

$ ls -1 | head -1
????????

Есть замечательная программа convmv, которая нам поможет. Но при попытке её использовать возникла небольшая проблема. Как её решить?

Дело в том, что подсунуть аргумент этой программе не получается:

$ convmv -f CP1251 -t utf8 -r ????????
file or directory not found: ????????

Графический эмулятор терминала искажает символы, и скопировать их не удаётся. Поэтому мы пойдём иным путём. Сначала убедимся, что кодировки для преобразования выбраны верно:

$ ls -1 | head -1 | iconv -f CP1251 -t utf8
Телевизор

Хоть что-то по-русски. Теперь, собственно, преобразование:

ls -1 | head -1 | xargs convmv -f CP1251 -t utf8 -r --notest

Но перед тем, как это выполнить, обратите внимание на последний ключ notest. Если его не указать, то фактического переименования файлов не будет – программа только покажет, что и во что собирается переименовать. Для начала можно попробовать запустить без него и убедиться, что всё пройдёт точно так, как надо. Для реккурсивного обхода каталогов предназначен ключ -r.

Таким образом, мы с помощью xargs указали программе convmv аргумент, состоящий из непечатаемых символов.


Filed under: Без рубрики | Метки:
Метки:
Январь 19th, 2010 16:07:59

Похожие посты:
no comments

Извините, обсуждение на данный момент закрыто.