DOS/Windows と UNIX のファイルはで、ASCII ファイル(=テキストファイ ル)でも一般に改行コードと漢字コードが異なります。ここでは、DOS と UNIX の ASCII ファイルの違いとその変換の仕方を説明します。さらに、DOS フォー マットのフロッピーディスクの扱い方についても説明します。
- [註] ASCII ファイルとバイナリファイル
- ASCII コードのみからなるファイルを、ASCII (アスキー)ファイル、 または、テキストファイルといいます。エディタで作成したファイルは、 ASCII ファイルです。これに対し画像、圧縮データ、ワープロ文書等は 全てバイナリファイルです。エディタで作成したファイル以外は 全てバイナリファイルと考えていいでしょう。
DOS の UNIX は、漢字コードは、
DOS/Windows Sift-JIS
UNIX EUC or JIS or Sift-JIS
となっており、漢字コードが異なるのが一般的です。漢字コードの変換には、nkf というコマンドを利用します。
nkf の使用法は以下のようです。
> nkf -j abc.txt > abc.jis ! JIS へ変換
> nkf -s abc.txt > abc.sjis ! SJIS へ変換
> nkf -e abc.txt > abc.euc ! EUC へ変換
この時、入力ファイルの漢字コードは問いません。
DOS と UNIX の改行コードは、それぞれ、
DOS/Windows LF + CR
UNIX LF
* LF: Line Feed CR: Carriage Return
となっています。このため、ホームディレクトリに、DOS 環境で作った
ASCII ファイルがあって、それを UNIX 環境で vi や cat で見ると、
全ての行の終りに、CR を表す、 "^M" という制御コードが付いています。これを一度に削除するコマンド(Perl のスクリプト)が dos2unix です。 使い方はたんに
> dos2unix file_name
とするだけです。逆に UNIX 環境で作成した ASCII ファイルを、DOS 環境で使うつもりの 場合は、unix2dos コマンドで、DOS の改行コードに変更します。
ftp の ASCII mode でファイル転送を行うことにより、DOS/UNIX 間の改行 コードの違いが吸収されます。
アスキーモードのファイル転送の例
ftp> ascii ! ascii mode へ変更
200 Type set to A.
ftp> put mh.html
local: mh.html remote: mh.html
200 PORT command successful.
150 Opening ASCII mode data connection for 'mh.html'.
226 Transfer complete.
2156 bytes sent in 0.02 seconds (131.66 Kbytes/s)
ftp>
これに対し、画像や圧縮ファイルなどのバイナリーファイルは、
バイナリーモードで転送しないと、データが正しく送られません。バイナリーモードのファイル転送の例
ftp> bin ! バイナリーモードへの変更
200 Type set to I.
ftp> put beppin54.gif
local: beppin54.gif remote: beppin54.gif
200 PORT command successful.
150 Opening BINARY mode data connection for 'beppin54.gif'.
226 Transfer complete.
204109 bytes sent in 0.46 seconds (431.83 Kbytes/s)
ftp>
ftp については、この講座の「ファイル転送」に
より詳しい解説があります。
UNIX 環境で PC を立ち上げたとき、直接 DOS 形式のフロッピーを 扱う方法を説明します。これには、mtools と呼ばれるコマンド群を 用います。
コマンド名は、DOS のコマンドにの頭に m を付けたものになって います。
フロッピーディスクドライブ名は、"a:" です。したがって、 例えばフロッピーディスクの内容を表示させるには、
> mdir a:
abc.c というファイルを、フロッピーディスクから、カレントディレ
クトリにコピーするには、
> mcopy a:abc.c ./
とします。mtools で使えるコマンドは
mcd カレントディレクトリの移動
mcopy ファイルのコピー
mdel ファイルの消去
mdir ファイルの一覧表示
mformat フロッピーディスクのフォーマット
mmd ディレクトリの作成
mrd ディレクトリの消去
mren ファイル名の変更
mtype ファイルの内容表示
です。