vine-users ML アーカイブ



[vine-users:072629] File Copy EUC-JP -> UTF-8

  • From: Hiroki Kashiwazaki <reo@xxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:072629] File Copy EUC-JP -> UTF-8
  • Date: Thu, 11 Aug 2005 00:57:25 +0900
柏崎@北海道です。

日本語ファイル名を持つファイルが大量にあるファイルサーバ (Vine Linux
2.6) を Mac OS X server のファイルサーバに移行しようとしています。

普通にrsyncを行おうとすると、日本語ファイル名の文字コードが Vineでは
EUC (なのか ?) であるため、Mac OS X ではファイル名が化けてしまいます。

そこで考えたのが

1. ファイル名をiconv -f EUC-JP -t UTF-8で変換かけて、一ファイルずつ
   rsync する (rsync を使ったのはタイムスタンプ・所有者・パーミッシ
   ョンを保持したいため) スクリプトを書いてみる

なのですが、rsync で一つずつファイルをコピーしようとすると、親ディレ
クトリを -p とかで再帰的に自動的に作ってくれないため、面倒。ディレク
トリチェックを行うのも手かなと考えていますが、後回しにしています。

で、代替手段として

2. rsync の代わりにディレクトリを再帰的に自動的に作ってくれるcpioを
   使ってスクリプトを組んでみる

という事を考えたのですが、cpio の場合、-p オプションを使うと意図した
ようにディレクトリ問題を解決できそうなのですが (-d) 、一つ一つコピー
先のファイル名を指定して出力する事が出来なさそうに見えます。
そのため、ファイル名を iconvで変換するパイプを挟む事が出来なさそうだ
と思えました。

samba でコピーすれば文字コードはあっさり解決できるのですが、タイムス
タンプとパーミッションがぐちゃぐちゃになるのが好みではありません。

で、現在は 1. でディレクトリを復元する何かの方法を考えようかなーとし
ているところなのですが、ML参加者の皆様で、文字コードの異なるファイル
の移行を行った事がある方、情報をお寄せ頂ければ幸いです。

-- 
柏崎 礼生 (Hiroki Kashiwazaki)@HUIST
Research Associate @ Graduate School of Information Science and
Technology, Hokkaido University
mailto:reo@xxxxxxxxxxxxxxxxx
Tel:+81-11-706-2998