本を読む

読書やコンピュータなどに関するメモ

Re: tar zxvf

皆さんは普段どれをお使いですか?

 私の場合、最近ではzなしのxvf派です。

$ tar xvf hoge.tar.gz

 zオプションのあるtarはGNU tarですが、最近のGNU tarでは、展開についてはzオプションをつけなくても伸長をしてくれます。

 GNU tarのソースを見て確認してみます。buffer.cで展開関数_open_archiveが定義されています。

static void
_open_archive (enum access_mode wanted_access)

 この中で、zなどのオプションが指定されたときに設定される変数use_compress_program_optionをチェックしています。

  if (use_compress_program_option)

 が、elseのほうでも、こんな処理になっています。

      case ACCESS_READ:
	archive = open_compressed_archive ();
	break;

 open_compressed_archiveの中では、まず圧縮形式を自動判別しています。

      enum compress_type type = check_compressed_archive (&shortfile);

 この結果をさきほどのuse_compress_program_optionに代入して処理しています。

      use_compress_program_option = compress_program (type);
      child_pid = sys_child_open_for_uncompress ();

 以上、圧縮が自動判別されることを確認しました。手で指定したほうが確実ですが、物おぼえの悪い私は、zとかjとかナシとかを使いわけると混乱するので。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/514-7a81107e

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad