2017/12/09

Can't translate pathname 'path/to/the/file/foo.bar' to UTF-8:

20年位前のノートPCにFreeBSD/i386を入れて利用してきましたが、さすがに旧過ぎるので問題を感じています(ハードウェア的な問題という訳でもないのですが)。ジャンクでThinkPad Edge 530cを入手したので、FreeBSD/amd64の環境に移行しようと作業を進めています。

OSやアプリケーションを入れるのは、特別に難しいことではありません。問題は以前のマシンに置いてある長年蓄積されたファイルをコピーする方法です。外付けHDDを仲介する方法もあると思いますが、LANを使ってネットワーク越しにコピーしようと思います。NFSでマウントしておきさえすれば、普通のコマンドでコピーできるでしょう。

 まず試したのがtarを使う方法です。普段から一括コピーする場合はtarを利用することが多いのです。注意したのはロケールです。ファイル名に日本語を使っているところもあるので、余計な処理がおこなわれないようにするためCロケールにしておきました。

ところが標記したようなメッセージが大量に出てくるのです(何故?)。Webを検索してみると「TARコマンドのCan't translate pathnameメッセージ 」という情報を見つけました。 やはりロケールには注意しなければいけないようですが、Cロケールにしたのに何故「Can't translate pathname ~ to UTF-8」というメッセージが出てくるのでしょうか。

このようなメッセージが出てきたとしても、コピー自体は出来ているのか、それとも失敗しているのか、何分にもメッセージが大量に出るので個々に確認していられません。

tarを使うのを諦めて、rsyncを使ってみました。こちらは妙なメッセージが出ることも無く、スッキリと転送されました。rsyncはFreeBSDに標準的に入っているコマンドではありませんが、うまくいくのであればrsyncにしようと思います。

tarを使って転送した場合には39時間ほどかかりましたが、rsyncでは37時間あまりでした。rsyncの方が心持ち速いようですが、劇的に速くなるわけでもなく、ほとんど誤差の範囲です。

0 件のコメント:

コメントを投稿