» www.Giftbox.Az - Bir birindən gözəl hədiyyə satışı
ウィキペディアランダム
毎日カテゴリ
共有: WhatsappFacebookTwitterVK

tar

tar(ター、tape archives)はファイルアーカイブファイルフォーマットの一種である。このファイルフォーマットを処理する同名のUNIXコマンドtarも指す。UNIXでは圧縮したtar形式のファイルを"tarball"(ターボール)と呼ぶこともある。POSIX.1-1988[1]POSIX.1-2001[2]で規格化され、UNIX系オペレーティングシステムでは標準のフォーマットである。Windows では Windows 10 Build 17063 (Version 1803) 以降から標準搭載されている[3]。類似コマンドにafioがある。

Tar
拡張子.tar
MIMEタイプapplication/x-tar
タイプコード"TARF"
UTIpublic.tar-archive
マジック
ナンバー
ustar\000すなわち「ustar」、NUL、算用数字の零2個の計8バイト(POSIX tar)
ustar\040\040(GNU tar)
(いずれも0から数えて257バイト目から)
種別ファイルアーカイブ
GNU Tar
開発元 GNUプロジェクト
最新版
1.34 / 2021年2月13日 (2年前) (2021-02-13)
リポジトリ git.savannah.gnu.org/cgit/tar.git
プログラミング
言語
C言語
ライセンス GNU GPL v3 以降
公式サイト www.gnu.org/software/tar/
(テンプレートを表示)
libarchive (bsdtar)
最新版
3.6.2 / 2022年12月9日 (5か月前) (2022-12-09)
リポジトリ github.com/libarchive/libarchive
プログラミング
言語
C言語
ライセンス New BSD License
公式サイト www.libarchive.org
(テンプレートを表示)

機能

tarはファイルアーカイブに用いられ、多数のファイルを一つのファイルにまとめることができる。ファイルのユーザ情報とグループ情報、パーミッション、最終更新日時、ディレクトリ構造などを同時にアーカイブすることができる。

圧縮・伸長

 
tarによって複数のファイルを1つにまとめ、gzipなどで圧縮する。

元来tarはアーカイブ、すなわち複数のファイルをまとめることのみで圧縮の機能はない。大半の場合アーカイブと同時にcompressgzipbzip2などの圧縮方法を用いて圧縮(いわゆるソリッド圧縮)を行う。これによりファイルの拡張子はそれぞれ .tar.Z.tar.gz.tar.bz2 となる。それぞれ略して .taZ.tgz, .tbz2 とされることも多い。特に gzip は古くから良く使われている。

この形式はファイルが一部でも破損した場合、破損箇所に含まれていたファイル以降は取り出すことはできない。この欠点はafioとgzを使うことにより改善できる。

ヘッダー

tarはファイルの属性などのいわゆるメタデータも一緒に含んでいる。以下のテーブルにUNIX tarフォーマットの一例を示す:

Pre-POSIX.1-1988 (i.e. v7):

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

コマンドオプション

以下は GNU Tar および bsdtar で共通で利用可能なオプションである。

  • -c 新しいアーカイブを作成する
  • -r アーカイブにファイルを追加する
  • -t アーカイブの内容をリスト表示する
  • -u アーカイブ内より新しいファイルを追加する
  • -x アーカイブからファイルを取り出す
  • -f file テープの代わりに指定したファイルをアーカイブする。これが指定されていない場合は環境変数 TAPE に従う。それもない場合の挙動はOSやコンパイル時の指定依存。
  • -v 詳細メッセージを表示する
  • -C directory directoryに移動してから操作を行う
  • --newer date 指定した日付よりも新しいファイルだけをアーカイブに入れる(取り出す)
  • -T file fileの中に記載されているファイル名をアーカイブに入れる(取り出す)。fileの中身は改行区切りで1行1ファイル名。

圧縮・伸長オプション

  • -a もしくは --auto-compress アーカイブ作成・展開時に、拡張子から圧縮・伸長プログラムを自動的に決定する[4]
    • compress は .tar.Z, .taZ
    • gzip は .tar.gz, .tgz, .taz
    • bzip2 は .tar.bz2, .tz2, .tbz2, .tbz
    • xz は .tar.xz
    • lzip は .tar.lz
    • lzma は .tar.lzma, .tlz(ルールに一貫性がなく .tlz は lzip ではなく lzma になっている)
    • lzop は .tar.lzo
    • Zstandard は .tar.zst, .tzst
  • -Z もしくは --compress アーカイブをUNIX Compressで圧縮・伸長する
  • -z もしくは --gzip アーカイブをgzipで圧縮・伸長する
  • -j もしくは --bzip2 アーカイブをbzip2で圧縮・伸長する
  • -J もしくは --xz アーカイブをxzで圧縮・伸長する
  • --lzma アーカイブをlzmaで圧縮・伸長する
  • --lzop アーカイブをlzopで圧縮・伸長する
  • --zstd アーカイブをZstandardで圧縮・伸長する

2022年12月現在、GNU Tar 独自の物として --lzip があり、bsdtar 独自の物としては --lrzip や --lz4 がある。

コマンド例

以下は、圧縮・伸長のコマンド例である[5]

圧縮。

tar -caf name.tar.gz directory 

伸長。

tar -xaf name.tar.gz 

テープデバイス

テープデバイスに記録。

tar -cf /dev/nst0 directory 

テープデバイスから読み出す。

tar -xf /dev/nst0 

テープ上のファイルのリストを表示。リスト表示したいアーカイブファイルの先頭にテープを移動させた後、以下を実行。

tar -tf /dev/nst0 

歴史

tarコマンドはその名の通り磁気テープの操作が念頭に置かれていた。fオプション[6]を省いた場合デフォルトで磁気テープデバイスを処理する。fオプションの指定によりファイルシステム上の任意の名前のファイルを処理できる。

tarという言葉の由来は「(リーマスじいや)(英語版)」の童話『(タールの赤ん坊)(英語版)』に由来し[7]、それに油塊(タールボール)を引っ掛けたジョーク的用語である。

その歴史の長さゆえにシステム毎の方言やファイルサイズの制限など多くの非互換部分がある為、異なるシステム間のファイル交換を目的とする場合は慎重に利用する必要がある。近年は GNU Tar と bsdtar が一般的ではあるが、その他、様々な tar が存在する。Windows 10 以降や macOS に搭載されているのは bsdtar であり、Linux で一般的なのは GNU Tar である。BusyBox にも独自の tar が含まれている。

関連項目

脚注

[脚注の使い方]
  1. ^ "IEEE Std 1003.1-1988, IEEE Standard for Information Technology - Portable Operating System Interface (POSIX)"
  2. ^ "IEEE Std 1003.1-2001, IEEE Standard for Information Technology - Portable Operating System Interface (POSIX)"
  3. ^ Tar and Curl Come to Windows! | Microsoft Learn
  4. ^ GNU tar 1.34: 8.1.1 Creating and Reading Compressed Archives
  5. ^ いずれも short option style での記法である。https://www.gnu.org/software/tar/manual/tar.html#SEC32 によれば、記法には、long option style, short option style, old option style がある。old option style だと tar -tvf /dev/nst0 は tar tfv /dev/nst0 になる。
  6. ^ ファイル (file) の頭文字である。
  7. ^ “Jargon File - tar”. 2010年11月27日閲覧。童話の日本語訳書は(アナンシ#関連書籍)を参照。

外部リンク

GNU Tar

  • Tar - GNU Project
  • Man page of TAR
  • GNU tar format

bsdtar

  • libarchive
  • tar(1) - FreeBSD General Commands Manual
  • tar(5) - FreeBSD File Formats Manual
ウィキペディア、ウィキ、本、library、論文、読んだ、ダウンロード、自由、無料ダウンロード、mp3、video、mp4、3gp、 jpg、jpeg、gif、png、画像、音楽、歌、映画、本、ゲーム、ゲーム。