[Comm] Имена файлов.
Alexander Kuprin
=?iso-8859-1?q?ru=5Fclassic_=CE=C1_gts=2Elg=2Eua?=
Ср Апр 14 09:22:50 MSD 2004
On Wednesday 14 April 2004 07:55, Andrey Brindeew wrote:
> On Wed, Apr 14, 2004 at 10:31:22AM +0700, Yevgeny Manyashev wrote:
> > Имеются zip-архивы, сделанные в винде, с русскими именами файлов.
> > Вопрос: как перекодировать эти имена в koi8?
> > Команда
> > unzip -l 01.zip | iconv -f CP866 -t koi8
> >
> > сразу же обламывается.
>
> Почитай какую-нибудь детскую книжку по Юниксам.
Например, вот эту http://www.linux.org.ru/books/LDP/lug.html
Хотя ей уже 10 лет, но для общего ознакомления подойдёт. По крайней мере та
часть, что относится не к "иксам".
> unzip у тебя пишет на диск, а iconv ждет от него данные на STDIN.
Но задачка интересная. Я попробовал её решить, использя find, но создать
однострочник не вышло. :-\ Сперва я проверил такую конструкцию:
find *.doc -exec echo '{}' | iconv -f cp866 -t koi8-r ';'
Работает. Потом решил усложнить
find *doc -exec mv -i '{}' `echo '{}' | iconv -f cp866 -t koi8-r` ';'
Не заработало. Не выполняется подстановка нового имени файла из
`echo '{}' | iconv -f cp866 -t koi8-r`. В конце концов написал маленький
скрипт dos2koi:
#!/bin/sh
mv $1 `echo $1 | iconv -f cp866 -t koi8-r`
который и вызывал при помощи find:
find *doc -exec ./dos2koi '{}' ';'
Так работает. Возможно я чего-то не знаю о find? Кто-нибудь может подсказать
как подобную конструкцию реализовать одной строкой?
--
WBR, Alexadner Kuprin
Подробная информация о списке рассылки community