|
ウェブやソフトウェアに関するサポート&情報サイトです。サイト構築からソフトウェアの作成、利用まであなたの助けになるかも・・・・しれません。たぶん・・。
内容は未保障のため、参考程度にご覧ください。 --------------------------------------------------------------------------------- TAR format --------------------------------------------------------------------------------- Offset Length Contents 0 100 bytes File name ('\0' terminated, 99 maxmum length) 100 8 bytes File mode (in octal ascii) 108 8 bytes User ID (in octal ascii) 116 8 bytes Group ID (in octal ascii) 124 12 bytes File size (s) (in octal ascii) 136 12 bytes Modify time (in octal ascii) 148 8 bytes Header checksum (in octal ascii) 156 1 bytes Link flag 157 100 bytes Linkname ('\0' terminated, 99 maxmum length) 257 8 bytes Magic ("ustar \0") 265 32 bytes User name ('\0' terminated, 31 maxmum length) 297 32 bytes Group name ('\0' terminated, 31 maxmum length) 329 8 bytes Major device ID (in octal ascii) 337 8 bytes Minor device ID (in octal ascii) 345 167 bytes Padding 512 (s+p)bytes File contents (s+p) := (((s) + 511) & ~511), round up to 512 bytes Checksum: int i, sum; char* header = tar_header_pointer; sum = 0; for(i = 0; i < 512; i++) sum += 0xFF & header[i]; /* The linkflag defines the type of file */ #define LF_OLDNORMAL '\0' /* Normal disk file, Unix compatible */ #define LF_NORMAL '0' /* Normal disk file */ #define LF_LINK '1' /* Link to previously dumped file */ #define LF_SYMLINK '2' /* Symbolic link */ #define LF_CHR '3' /* Character special file */ #define LF_BLK '4' /* Block special file */ #define LF_DIR '5' /* Directory */ #define LF_FIFO '6' /* FIFO special file */ #define LF_CONTIG '7' /* Contiguous file */ +---------------------------------+ |header(ヘッダ部分)512bytes固定 | +---------------------------------+ |data(データ部分)512bytesの倍数 | +---------------------------------+ | : | | header+dataの繰り返し | | : | +---------------------------------+ |end of mark 1024bytes | +---------------------------------+ * 終端は1024バイトの00埋め (注意) ヘッダ情報は、基本的にASCIIの文字列で設定される。 数値は8進数の文字列として設定される --------------------------------------------------- 日本語の名称 --------------------------------------------------- ファイル名 : 100 属性 : 8 ユーザID : 8 グループID : 8 ファイルサイズ : 12 更新日時 : 12 チェックサム : 8 タイプ : 1 リンク先ファイル名 : 100 マジックコード・バージョン番号 : 8 ユーザ名 : 32 グループ名 : 32 メジャーデバイス名 : 8 マイナーデバイス名 : 8 パディング : 167 --------------------------------------------------- 日本語の解説 --------------------------------------------------- ファイル名 : ASCIIまたはSJISで100バイト(パス名含む) ユーザID/グループID :“0”はルートをあらわす 更新日時 : ustat()で得られる最終更新日時の値を8進数文字列であらわしたもの チェックサム : ヘッダ512バイト分のチェックサム マジックコード/バージョン番号 :“ustar\0” + バージョン番号 “00” ユーザ名/グループ名 : null終端のASCII文字列 メジャーデバイス番号/マイナーデバイス番号 -- タイプが[3]または[4]の場合のみ使用 属性 :(UNIXの属性と同じ)/16ビット分を8進数の文字列として登録される ビット位置 0,1,2 : 他人の 実行属性, 書き込み属性 , 読み込み属性 3,4,5 : グループの 実行属性, 書き込み属性 , 読み込み属性 6,7,8 : オーナーの 実行属性, 書き込み属性 , 読み込み属性 9 : Sticky bit 10 : Set GID 11 : Set UID 12 : パイプ 13 : キャラクタ型スペシャルファイル 14 : ディレクトリ 15 : 通常ファイル タイプ: 文字 0 : 通常ファイル 1 : リンク 2 : シンボリックリンク 3 : キャラクタ型デバイス 4 : ブロック型デバイス 5 : ディレクトリ 6 : FIFOスペシャルファイル 7 : コンティギアス?(Contiguous)ファイル A-Z : 予約 --------------------------------------------------- tarのフォーマットの解説 --------------------------------------------------- tar ファイルには主として以下のような複数のフォーマットがある。 * V7 (Version 7 Unix) * 旧 gnu * 新 gnu * POSIX.1-1988 (ustar) * POSIX.1-2001 (posix) これらのうち、もっとも基本的なものは V7 であり、それ以外のものは V7 のヘッダフォーマットを拡張するか、 全く異なる構造になっている。 通常のWinZIPなどでtarファイルを解凍する場合、 取り扱い可能なファイルタイプは、通常のファイルとディレクトリのみがほとんどで、 シンボリックリンクなど(通常のファイルとディレクトリ以外の情報)は、ほとんど無視される。 また、ハードリンクやスペシャルファイル、ボリュームラベル等も同様無視される。
コメントをどうぞ