DOS/Windows 環境で作成したファイルの扱い

DOS/Windows と UNIX のファイルはで、ASCII ファイル(=テキストファイ ル)でも一般に改行コードと漢字コードが異なります。ここでは、DOS と UNIX の ASCII ファイルの違いとその変換の仕方を説明します。さらに、DOS フォー マットのフロッピーディスクの扱い方についても説明します。

[註] ASCII ファイルとバイナリファイル
ASCII コードのみからなるファイルを、ASCII (アスキー)ファイル、 または、テキストファイルといいます。エディタで作成したファイルは、 ASCII ファイルです。これに対し画像、圧縮データ、ワープロ文書等は 全てバイナリファイルです。エディタで作成したファイル以外は 全てバイナリファイルと考えていいでしょう。

  1. 漢字コードの変換

    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 へ変換    
    この時、入力ファイルの漢字コードは問いません。
  2. 改行コード

    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 の改行コードに変更します。

  3. ftp 転送による改行コードの吸収

    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 については、この講座の「ファイル転送」に より詳しい解説があります。

  4. DOS フォーマットのフロッピーディスクへのアクセス

    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      ファイルの内容表示 
    です。

Last update: August 18,1997 by ushimaru@ece.numazu-ct.ac.jp