tar コマンドは次の短縮形です。 テープアーカイブ Linuxでは。このコマンドは、アーカイブの作成とアーカイブ ファイルの抽出に使用されます。で Linux 、これはアーカイブ機能を容易にする重要なコマンドの 1 つです。このコマンドを使用して、非圧縮および圧縮アーカイブ ファイルを作成したり、それらを変更したり保守したりすることもできます。
Tar は、コンピューティングにおいて複数のファイルを 1 つのアーカイブ ファイルに収集するコンピューター ソフトウェアのユーティリティです。多くの場合、これはバックアップと配布の目的で tarball として知られています。このタイトルは、実際にはファイル システムを使用せずにシーケンシャル I/O デバイス上のデータを指定するために開発されたため、「テープ アーカイブ」から取得されました。 tar によって作成されたアーカイブ データ グループには、ディレクトリ構成、ファイル アクセス許可、所有権、タイムスタンプ、名前などの多くのファイル システム パラメーターが含まれています。 pax を支持して、POSIX は tar を放棄しましたが、tar は依然として広く使用されています。
まず、1979 年 1 月にバージョン 7 Unix で発表され、tp プログラムを置き換えました。データを保存するために、ファイル構造は POSIX.1-1988 およびその後の POSIX.1-2001 で標準化され、ほとんどすべての最新のファイル アーカイブ システムでサポートされるパターンになりました。 Unix 系オペレーティング システムには通常、tar ファイルをサポートするツールと、bzip2 や gzip などの圧縮に使用されるユーティリティが含まれています。
Microsoft 10 April 2018 Update 以降、BSD-tar は Microsoft Windows に含まれており、Windows 上でこれらのパターンを読み書きするためのサードパーティ ツールが 2 つ以上あります。
tarのファイル形式
現在のファイル形式と過去のファイル形式を含め、多くの tar ファイル形式が利用可能です。 POSIX では、pax と ustar という 2 つの tar 形式が書かれています。
ヘッダ
ファイル ヘッダー レコードには、ファイルのメタデータが含まれます。ヘッダー レコードでは、情報は ASCII 標準でエンコードされ、異なるバイト順序を使用して異なるアーキテクチャ間での柔軟性が確保されます。したがって、アーカイブ内のすべてのファイルが ASCII テキスト ファイルであり、ASCII 名が含まれている場合、そのアーカイブは ASCII テキスト ファイル (複数の NUL 文字を含む) になります。
次の表では、実際の Unix tar 形式で定義されているいくつかのフィールドについて説明します。リンク ファイル/インジケーター タイプ テーブルには、いくつかの最新の拡張機能が含まれています。フィールドが未使用の場合、フィールドにはさまざまな NUL バイトが埋め込まれます。
POSIX.1-1988 以前の tar ヘッダー:
分野 | フィールドサイズ | フィールドオフセット |
---|---|---|
ファイル名 | 100 | 0 |
ファイルモード | 8 | 100 |
所有者の数値ユーザー ID | 8 | 108 |
グループの数値ユーザー ID | 8 | 116 |
バイトファイルサイズ | 12 | 124 |
Unix 時刻の数値形式の最終変更時刻 | 12 | 136 |
ヘッダーレコードのチェックサム | 8 | 148 |
リンクインジケーター | 1 | 156 |
リンクされたファイル名 | 100 | 157 |
Ustart形式
Ustar 形式では、1988 年から POSIX IEEE P1003.1 標準によって発表された、ほとんどすべての最新の tar プログラムのアーカイブの書き込みと読み取りが行われます。これにより、追加のヘッダー フィールドが導入されました。以前の tar プログラムは追加情報を回避していましたが、新しいプログラムは「Ustar」文字列の存在をチェックして、新しい形式が使用されているかどうかを判断します。
分野 | フィールドサイズ | フィールドオフセット |
---|---|---|
以前の形式と同様に多くのフィールド | 156 | 0 |
タイプフラグ | 1 | 156 |
以前の形式と同様のフィールド | 100 | 157 |
'ustar' Ustar インジケーター、その後 NUL | 6 | 257 |
「00」ウスターバージョン | 2 | 263 |
所有者のユーザー名 | 32 | 265 |
所有者のグループ名 | 32 | 297 |
デバイスのメジャー番号 | 8 | 329 |
デバイスのマイナー番号 | 8 | 337 |
ファイル名のプレフィックス | 155 | 3.4.5 |
POSIX.1-2001/人
Sun は 1997 年に tar 形式に拡張機能を追加する技術を提案しました。その後、この技術は POSIX.1-2001 標準として承認されました。この形式は pax 形式または拡張 tar 形式と呼ばれます。 mtime、atime、linkpath、gname、uname、sizes、gid、uid、グループ/ユーザー名とパス名の文字セット定義など、一部のタグは POSIX 標準で指定されています。
tar の主な実装
主要な実装は元の順序で記載されています。
さらに、ほとんどの cpio および pax 実装では、2 つ以上の tar ファイル タイプを作成および読み取ることができます。
tar コマンドの構文:
tar [options] [archive-file] [directory or file to be archived]
tar コマンドのオプション
tar コマンドのさまざまなオプションを以下に示します。
アーカイブファイルの概要
アーカイブ ファイルは、メタデータを含む複数のファイルを含むファイルとして定義できます。これらのファイルは、保存と移植を容易にするために、複数のデータ ファイルを個別のファイルに収集するために使用されます。ファイルを圧縮してストレージ容量を削減するためにも使用できます。
tarコマンドの例
tar コマンドで広く使用されている重要な例のいくつかを以下に示します。
1. -cvf オプションを使用して非圧縮 tar アーカイブを作成する
このオプションにより、tar ファイルは次のようになります。 ファイル.tar 。これは、内部のすべての .txt ファイルのアーカイブです ミディル ディレクトリ。
コマンドは次のとおりです。
$ tar cvf file.tar *.txt
2. -xvf オプションを使用してアーカイブからファイルを抽出する
このオプションでは、アーカイブを通じてファイルを抽出できます。
コマンドは次のとおりです。
$ tar xvf file.tar
3. -z オプションを使用した tar アーカイブ上の gzip 圧縮
このオプションにより、tar ファイルは次のようになります。 ファイル.tar.gz。 これは、すべての .txt ファイルのアーカイブです。
コマンドは次のとおりです。
$ tar cvzf file.tar.gz *.txt
4. -xvzf オプションを使用して gzip tar アーカイブを抽出する
このオプションでは、file.tar.gz tar アーカイブ ファイルを通じてファイルを抽出できます。
コマンドは次のとおりです。
$ tar xvzf file.tar.gz
5. -j オプションを使用して圧縮 tar ファイルを作成する
このオプションは、アーカイブ ファイルの作成と圧縮に役立ちます。 gzip に比べて、解凍と圧縮の両方に時間がかかります。
コマンドは次のとおりです。
$ tar cvfj file.tar.tbz hello1.txt
6. Linux で指定した単一のディレクトリまたはファイルを解凍します。
このオプションは、現在のディレクトリ内、または -C オプションで指定したディレクトリ内のファイルを解凍するために使用されます。
コマンドは次のとおりです。
$ tar -xvf file.tar -C file's path in the directory
または、
$ tar -xvf file.tar
7. Linux で複数の .tar.tbz、.tar.gz、.tar ファイルを解凍する
このオプションは次のことに役立ちます。 広める または、tar.bz2、tar.gz、および tar アーカイブ ファイルから複数のファイルを抽出します。
このオプションの例は次のとおりです。
$ tar -jxvf file.tar.tbz 'hello1.txt'
または、
$ tar -zxvf file.tar.gz 'hello1.txt' 'hello2.txt'
または、
$ tar -xvf file.tar 'hello1.txt' 'hello2.txt'
8. 既存の tar.tbz、tar.gz、tar ファイルのサイズを確認します。
このコマンドは、上で説明したアーカイブ ファイルのサイズをキロバイト (KB) 単位で表示するのに役立ちます。
コマンドは次のとおりです。
$ tar -czf - file2.tar.tbz | wc -c
または、
$ tar -czf - file1.tar.gz | wc -c
または、
$ tar -czf - file.tar | wc -c
9. 既存の tar ファイルを更新します。
Linux で既存の tar ファイルを更新するコマンドは次のとおりです。
$ tar rvf file.tar *.txt
10. コンテンツリストと tf オプションを使用した tar ファイルの記述
このオプションは、アーカイブ ファイル全体のリストを一覧表示するのに役立ちます。また、tar ファイル内の特定のコンテンツをリストすることもできます。
コマンドは次のとおりです。
$ tar tf file.tar
11. -tvf オプションを使用してアーカイブを表示する
Linux では、-tvf オプションを使用してアーカイブを表示できます。
コマンドは次のとおりです。
$ tar -tvf file.tar
12. ファイル名を引数として渡して tar ファイルを検索します。
このオプションでは、アーカイブされたファイルとその情報を表示できます。
コマンドは次のとおりです。
$ tar tvf file.tar filename
13. パイプを使用して「grep コマンド」をスローし、検索対象を検索する
このオプションは、言及された画像またはテキストのみをリストするのに役立ちます。 グリップ アーカイブされたファイルを通じて。
コマンドは次のとおりです。
$ tar tvf file.tar | grep 'filename.file'
または、
$ tar tvf file.tar | grep 'text to search'
ワイルドカードの概要
あるいは、ワイルドカードは、Linux ではワイルドカード文字またはワイルド文字と呼ばれます。複数の文字を表現したり置換したりするために使用される記号です。
ぎこちないリンスペース
通常、ワイルドカードは、個々の文字を示す疑問符 (?)、または複数の文字を示すアスタリスク (*) です。
例-
14. .webp 形式の画像を見つける
これは、file.tar アーカイブから .webp 拡張子が付いたファイルのみを抽出するのに役立ちます。 -wildcards オプションは、抽出されるファイル名のワイルドカードを解釈するように tar に通知します。
ファイル名 (*.webp) は、シェルによって誤って展開されないようにワイルドカード (*) を保護するために、一重引用符で囲まれています。
コマンドは次のとおりです。
$ tar tvf file.tar --wildcards '*.webp'
注: 上記のコマンドでは、その特定のディレクトリで利用可能な各ファイルを取得するために、ファイル名の位置に「*」記号が適用されます。
15. tar アーカイブからファイルを削除する
--delete オプションを使用して、ファイルと tar アーカイブを削除できます。
コマンドは次のとおりです。
$ tar --delete -f archive.tar file_name
例:
tar -delete -f file.tar hello1.txt
出力:
hello1.txt ファイルは file.tar アーカイブから削除されました。