お品書き
書き直し中…
とりあえず、中へどうぞ
↓↓↓
スポンサーリンク

Linuxサーバーの圧縮解凍時の文字化けについてまとめ

PC/ネット
Linux(debian)でファイルサーバーを作っています、オススメです。Windowsサーバー買うと、ライセンス料金が高いですからね。
ファイルサーバーにはLinuxがお勧め。理由はWindowsサーバーを買うとライセンス代取られるから。
しかも、サーバーのライセンスの他に、そこにアクセスするクライアント数に応じたライセンスが必要だとか

例えば、300人の社員が社内の三台のサーバーにアクセスする場合は、サーバーライセンス三台分とクライアントライセンス300人分が必要って事ですかね
Windows Server 2019 のライセンス購入ケース スタディ

しかも、なんか複雑で? サーバーライセンスは、コア数に応じてライセンスの数が変わる?
Windows Server 2019 ライセンス計算ツール

みんなで使うサーバーだから性能の良いものを~って買ったら値段が高くなるんですね?!

でも、Linux使えば全部タダで済みますからね。
で、Linuxサーバー上のファイルやフォルダを圧縮したり解凍したりしたくなったわけですが。

基本的にはすべての操作はクライアントのWindows上から行っているのですが、あまりにデータの量が多い/大きいと、圧縮・解凍にも長い時間が掛かるので、それが終わるまでWindows上で待ってなければならない。(ウィンドウをバックグラウンドに隠して別の作業してても、なんか重い!し、Windowsを終了できないので)

サーバーに直に圧縮・解凍作業をやらせておけば多少速いんじゃね?Windowsも重くならないし、Windowsも終了できるし。

そしてハマるのが、文字化け問題(笑)

Linux の圧縮・解凍コマンドは unzip ですが。

結論から言うと

(1)解凍には unzip を使うな。解凍は unar を使う。
(2)圧縮は必ずWindows上で行う(Linux上で圧縮しない)

(1)Windowsで圧縮されたファイルをLinux上でunzipで解凍すると、文字コードの違いで文字化けが発生する。

※しかも、文字化けしたファイルをLinux上で削除できなくなる!

フォルダごと削除して事なきを得ましたが。

文字化けしたファイルは、i-node番号を調べて指定してやると削除できるようですが、膨大な量のファイルを一つ一つなんてやってられない・・・

☆unzipには文字化けしないよう修正パッチが当てられたバージョンがあるらしいのですが、debian11には初期では用意されていない模様。

で、解凍には別途、unar というコマンドを使うと良いらしい。
当然初期では入ってないのでインストール。
apt update apt install unar -y
大変便利なコマンドで文字コードの変換に対応しているので、OSの違いを意識する必要がないという。ほとんどのアーカイブの解凍に対応している。大変素晴らしい。ただし、解凍専用。圧縮はできない。

(2)圧縮については、文字コード変換に対応する方法はない模様(方法はないわけではないけれど色々手間)なので、Windowsで使うファイルはWindowsで圧縮するしかない模様。Linuxで圧縮させておいてWindowsで解凍して使うというのは無理という結論。

余談ですが、ウナーってなんだ?猫の鳴き声か?unarは何の略?と思ったら、MACにあった UnArchinve というアプリだったようで・・・

コメント