LinuxとUSBメモリ
会社で機器制御用のLinuxのrpmやtar.gz、さらに自前で作ったCのソースなんかをUSBメモリに入れてやりとりしたり、Fileサーバ(samba)に保存したりしていたんだよね。 (会社の事務マシンはWindowsなのだ。)
USBメモリにXFSのCentOS/Linuxからソースやバイナリをそのまま入れてサーバに保存したり他のLinuxマシンに持って行ったりすると、まぁ、当然inode情報が欠落します。(笑) それをWindowsでZIPにして送ったり・・・してる人までいた。で。
「実行Fileが実行できなくなった」
「ソースの作成日付がCopyした日に変わってしまう」
「ZIPを解凍したらFile名が文字化けしてた」
「Cのソース、閲覧できないんだけど?」
とかの小さな事件が起きるわけです。(笑) Windowsしか知らない人には原因がさっぱりわからないらしい。まぁ、、私はMacユーザでunix使いなのでそんなことは当然のことなのですけどね。 ちなみにMacはUSBメモリのFAT32にFileをCOPYするとinode情報や拡張属性を不可視Fileで別保存してくれる。Linuxにはそういう(余分な)機能はない。
LinuxのFileSystem、ext3/4、XFS、そしてAppleのAPFSやHFS+は FAT32やNTFSとは扱えるFile属性情報が違うという認識を持って欲しいな。また、CのソースはUS-ASCII/utf8の改行コードはLFであり、Shift-JISでCR+LFのWindowsとは違う、ということ。BOMなんかも付けちゃいけない。 また、File名もutf8で扱うのが普通なので、Shift-JISの日本語Windowsとは同じZIPでもFile名が化けてしまう事になるのだ。
| 固定リンク
コメント