The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Как переименовать имена файлов из одной кодировки в другую
Если не переименовывать каталоги:

Вариант 1:
   find | sort -r | while read f; do
     fn=$(basename "$f"|iconv -f koi8-r -t windows-1251);
     [ "$fn" = "$(basename "$f")" ] || mv "$f" "$(dirname "$f")/$fn";
   done 

Вариант 2:

   #!/bin/sh
   # аргумент 1 - путь
   # аргумент 2 - из какой кодировки
   # аргумент 3 - в какую кодировку 
   find $1 -regex "$1/.*" | sort -r | while read f; do
      fb=$(basename "$f");
      fd=$(dirname "$f");
      nfb=$(echo "$fb"|iconv -f $2 -t $3);
      [ "$fb" = "$nfb" ] || (mv "$fd/$fb" "$fd/$nfb"; echo "$fd $fb -> $nfb";)
   done

Вариант 3:

   Использовать готовую программу для переименования с изменением кодировки http://j3e.de/linux/convmv/
 
27.04.2005 , Источник: http://www.opennet.ru/openforum/vsl...
Раздел:    Корень / Пользователю / Файлы, копирование, архивация

Обсуждение [ RSS ]
 
  • 1.1, baby11, 08:51, 28/04/2005 [ответить] [смотреть все]
  • +/
    Использовать утилиту convmv, делает все что нужно
     
  • 1.2, Dmitry Pupkov, 14:32, 03/05/2005 [ответить] [смотреть все]
  • +/
    А если нужно перекодировать rus -> translit?
     
     
  • 2.4, Peter, 14:53, 16/05/2005 [^] [ответить] [смотреть все]
  • +/
    >А если нужно перекодировать rus -> translit?
    ну видимо надо пользоваться фичей кодировки КОИ: сначала в КОИ, а потом в latin1?


     
  • 1.3, sg, 17:09, 13/05/2005 [ответить] [смотреть все]
  • +/
    bin sh Script for file name charset conversion It includes options fo... весь текст скрыт [показать]
     
  • 1.5, igor chubin, 14:13, 09/06/2005 [ответить] [смотреть все]  
  • +/
    Вот так вот надо переименовывать:


    find . -depth -exec sh -c 'a={}; mv {} ${a%/*}/'echo ${a##*/}|tr "[[:upper:]]" "[[:lower:]]"'' \;


    Одной командой и сразу всё дерево.
    Я здесь для примера написал как регистр менять.
    Если кодировку, то просто ставите вместо tr, iconv
    или recode, konwert


    К вопросу о транслитерации.
    Можете попробовать заменять так:

    $ konwert UTF8-ascii/rosyjski
    русский текст
    russkij tiekst

    Но результат получается с польским акцентом :-)

     
     
  • 2.9, Саша, 01:44, 27/02/2008 [^] [ответить] [смотреть все]  
  • +/
    Пожалуйста, напишите по-подробнее про перекодировку всех папок в дереве..
     
  • 1.6, Виталий, 01:39, 30/07/2006 [ответить] [смотреть все]  
  • +/
    Во втором скрипте надо писать:
    find "$1" "*"

    и далее по тексту

     
  • 1.7, Murz, 11:51, 17/01/2007 [ответить] [смотреть все]  
  • +/
    Что-то этот скрипт файло всё правильно переименовывает, а вот вложенные папки почему-то пропускает. А в остальном скрипт супер!
     
     
  • 2.8, manson, 12:59, 17/01/2007 [^] [ответить] [смотреть все]  
  • +/
    >Что-то этот скрипт файло всё правильно переименовывает, а вот вложенные папки почему-то
    >пропускает. А в остальном скрипт супер!

    Строчку
    find "$newname" -type d -execdir sh -c '\
    Заменить на
    find "$newname" -depth -type d -execdir sh -c '\

     
  • 1.10, Юзверь_Мастдайный, 12:37, 26/08/2010 [ответить] [смотреть все]  
  • +/
    А под виндовс никак низзя че-нить придумать?
    получил тар архифф файлов с убунты - все файлы utf-8, вынь ессно utf-8 нихт ферштейн... :(
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList