標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

tar のチェックサム

tar - Wikipedia

セクション「ヘッダー」より

オフセット サイズ 内容
0 100 ファイル名
100 8 ファイルモード
108 8 所有者 User ID
116 8 グループ User ID
124 12 ファイルサイズ(Byte)
136 12 最終更新時刻(UNIX時間)
148 8 チェックサム
156 1 リンクインジケーター(通常ファイル、ハードリンク、シンボリックリンク
157 100 リンクされたファイルの名前

チェックサムがあるということは verify できるのだろうか

$ yes | head --bytes 1024 > yyyyyyyy
$ tar cvf yyyyyyyy.tar yyyyyyyy
$ binview yyyyyyyy.tar

バイナリエディターで、yyyyyyyy.tar 中の無数の y の一つを z にする

$ tar tvf yyyyyyyy.tar
-rw-rw-rw-  0 0      0        1024 3 04 17:00 yyyyyyyy
$

BSD tar も GNU tar も特にエラー出ず。何の為のチェックサムだ。照合用のオプション等ないのだろうか?

なお、GNU tar で --diff オプションを指定して、ファイルシステム上のファイルと比較すると、さすがに見つかる。

$ ~/scoop/shims/tar.exe dvf yyyyyyyy.tar
yyyyyyyy
yyyyyyyy: Mode differs
yyyyyyyy: Uid differs
yyyyyyyy: Gid differs
yyyyyyyy: Mod time differs
yyyyyyyy: Contents differ

一方、zip の場合はちゃんとチェックサムを見ているようだ。

$ unzip -t corrupt .zip
Archive:  corrupt .zip
    testing: zerozero                 bad CRC 8e31045b  (should be efb5af2e)
At least one error was detected in corrupt .zip.