GNU/Linux >> Linux の 問題 >  >> Linux

Tarコマンド入門

タールとは何ですか? Tarは「テープアーカイブ」の略で、データがテープにバックアップされた初期のコンピューティングからの慣習を指します。ノスタルジックな名前の由来にもかかわらず、tarは非常に強力であり、最新のテクノロジーを使用してファイルをアーカイブおよび圧縮します。

基本を更新する:アーカイブと圧縮

tarコマンドは、Linuxユーザーが理解するために重要です。主題について深く掘り下げる前に、少し説明を加えて始めましょう。

  • アーカイブ–複数のファイルを1つのファイルとして保存する行為。
  • 圧縮–より大きなファイルを縮小する行為。

Tarはアーカイブツールです。複数のファイルから単一のファイルを作成します。これにより、ファイルの転送中にネットワーク帯域幅、時間、および処理能力が節約されます。ファイルのオーバーヘッドのため、100MBの単一ファイルは1MBの100ファイルを転送するよりもはるかに少ない時間で済みます。

これが、「 tarball」で利用可能なソフトウェアを見つけることが多い理由です。 ‘。 Tarballは、tarファイルに使用される一般的な用語です。

tar自体はファイルを圧縮できませんが、一般的な圧縮アルゴリズムの1つを使用して、tarballの作成中にファイルを圧縮できます。 これを行う方法については、この基本的なtarチュートリアルの後半で説明します。

一般的なtarファイル

よくある「tarファイル」の一部を次に示します。

.Tar :これはtarballファイルです。これは単なるアーカイブであり、圧縮は実行されません。

Tar.Gzまたは.tgz :これは、Gzipで圧縮されたアーカイブの拡張機能です。

.Tar.Bz2または.tbz :これは、Bz2で圧縮されたアーカイブの拡張です。これは比較的新しいテクノロジーです。圧縮率が高いのが特徴ですが、収縮力が増すため、完了するまでに少し時間がかかります。

.Tar.xzまたは.txzなど :Tarには、xz、lzipなどのサポートが組み込まれています。これらのツールは、主に同じ圧縮アルゴリズムであるLZMAを使用します。 Windows環境でかなり一般的になっている人気のある7zも、このアルゴリズムを使用しています。ファイルのさらなる違いは、構造とメタデータに起因します。これらの詳細については例では説明しませんが、言及したいと思います。

Linuxやその他のUnixベースのシステムでは拡張機能は必要ないことを覚えておくことが重要です。 Unixシステムは通常、拡張子に関係なくヘッダーでファイルを識別できますが、一般的な命名スキームを使用すると、混乱を避けるのに役立ちます。 Linuxでfileコマンドを使用して、ファイルのタイプを知ることができます。

タールコマンドの例

この記事では、tarを使用してファイルをアーカイブおよび圧縮するための一般的な方法のいくつかを示したいと思います。

Documentsフォルダーにさまざまな種類のファイルを集めました。ストック画像といくつかのテキストファイルがあります。いくつかの例を通して、圧縮によってファイルサイズがどのように変化するかを見ていきます。

使用されるドキュメントの完全なリストは次のとおりです。

[email protected]:~/Documents$ ll
total 7404
drwxr-xr-x  2 christopher christopher    4096 May  5 10:55 ./
drwxr-xr-x 17 christopher christopher    4096 May  5 10:59 ../
-rw-r--r--  1 christopher christopher 5094932 Apr 30 23:54 aerial-view-of-bushes-on-sand-field-3876435.jpg
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem1.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem2.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem3.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:56 lorem.txt
-rw-r--r--  1 christopher christopher 2411919 Apr 30 23:54 mountain-range-2397645.jpg

tarの機能についてはすでに触れました。これは、多くのオプションを備えた強力なツールです。さまざまなオプションとファイルタイプにより、コマンドが実際よりも複雑に見える場合があります。いつものように、私の目標はコマンドラインをわかりやすく説明することです。それでは、例のいくつかのオプションを組み合わせる前に、物事を細かく分割してみましょう。

一般的に使用されるオプションの表を次に示します。これはほんの始まりに過ぎないことを覚えておいてください。ヘルプドキュメントを自分で調べて、快適に感じたらさらに多くの可能性を見つけることをお勧めします。

スイッチ 拡張オプション 説明
-c、 –作成 新しいアーカイブを作成する
-d、 –diff、–compare アーカイブとファイルシステムの違いを見つける
-r、 –追加 アーカイブの最後にファイルを追加する
-t、 –リスト アーカイブの内容を一覧表示する
-u、 –更新 アーカイブにコピーするよりも新しいファイルのみを追加する
-x、 –extract、–get アーカイブからファイルを抽出
-j、 –bzip2 bzip2でアーカイブをフィルタリング
-z、 –gzip、–gunzip、–ungzip gzipでアーカイブをフィルタリング

1)tarballを作成します

先ほど、tarコマンドに関連する一般的なファイルの種類について説明しました。これはおそらく最も基本的なことです。

tar cvf output_tarball.tar source_directory

圧縮は適用されないため、ファイルは少なくともドキュメントフォルダ内のファイルと同じスペースを占有します。

[email protected]:~$ tar cvf doc.tar ~/Documents

tar cvf(create、verbose、file-archive):〜/Documents内のすべてのファイルからdoc.tarという名前の新しいtarファイルを作成します。

[email protected]:~$ ll doc.tar
-rw-r--r-- 1 christopher christopher 7567360 May  5 11:00 doc.tar

tarballは、tarballのソースディレクトリと同じディレクトリ構造になることに注意してください。

2)gziptarballを作成します

tarballを作成しながらgzip圧縮を試してみましょう。

[email protected]:~$ tar cvzf doc.tar.gz ~/Documents

tar cvzf(create、verbose、g-zip、file-archive):〜/Documents内のすべてのファイルからdoc.tar.gzという名前の新しいtarファイルを作成します。 tarballの作成中にgzip圧縮(オプションzを使用)を使用します。

[email protected]:~$ ll doc.tar.gz 
-rw-r--r-- 1 christopher christopher 7512498 May  5 11:01 doc.tar.gz

ご覧のとおり、gzipで圧縮されたtarボールのサイズは、通常の非圧縮のtarボールよりも54862バイト(53MB)小さくなっています。

ハイフンを使用している間は注意を払ってください–tarオプション付き

通常、Linuxコマンドでオプションを使用する場合は、オプションの前にハイフン(-)を追加します。
オプションの前のハイフンは必須ではなく、避けるのが最善です。これが、例で使用していない理由です。
オプションの前にハイフンを使用する場合は、常にオプションの最後にfを付ける必要があります。 tar -cvfzを使用する場合、zはオプションzの引数になります。次に、次のようなエラーが表示されます。

tar:doc.tar.gz:統計できません:そのようなファイルまたはディレクトリはありません

このため、他のすべてのオプションの最後にオプションfを使用して、習慣からハイフンを使用しても問題が発生しないようにすることをお勧めします。

3)bz2tarballを作成します

たとえば、bz2tarballを作成したいとします。手順は前の手順と同じです。オプションz(gzip)をj(bz2)に変更するだけです。前述のオプション表を参照してください。

[email protected]:~$ tar cvjf doc.tar.bz2 ~/Documents

tar cvfj(create、verbose、bz2 type、file-archive)。

[email protected]:~$ ll doc.tar.bz2
-rw-r--r-- 1 christopher christopher 7479782 May  5 11:04 doc.tar.bz2

サイズに気づきましたか? gzipで圧縮されたtarballよりもさらに少なくなります。

4)tarballのコンテンツを一覧表示します

-tを使用できます オプション(-cの代わりに)を使用して、アーカイブファイルの内容を表示します。これは、ファイルが圧縮されているかどうかに関係なく同じように機能します。圧縮されたサイズではなく、実際のファイルサイズが一覧表示されます。

[email protected]:~$ tar tvf doc.tar
drwxr-xr-x christopher/christopher 0 2020-05-05 10:55 home/christopher/Documents/
-rw-r--r-- christopher/christopher 5094932 2020-04-30 23:54 home/christopher/Documents/aerial-view-of-bushes-on-sand-field-3876435.jpg
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem1.txt
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:56 home/christopher/Documents/lorem.txt
-rw-r--r-- christopher/christopher 2411919 2020-04-30 23:54 home/christopher/Documents/mountain-range-2397645.jpg
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem3.txt
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem2.txt

5)tarballにファイルを追加する

-rを使用して、tarballアーカイブにファイルを追加できます。 。最初にtarコマンドを使用してファイルを抽出せずに、圧縮アーカイブにファイルを追加することはできません。

-uを使用して追加することもできます 更新のオプション。このオプションは、ヘルプドキュメントに従って新しいファイルを追加するだけであると想定されていますが、実際には、追加と同じように機能し、すべてのファイルの新しいコピーを追加します。

[email protected]:~$ tar rvf doc.tar ~/Documents/

6)tarballを抽出します

さまざまな種類の圧縮が全体的なファイルサイズにどのように影響するかを確認したので、それらのファイルの抽出を見てみましょう。

[email protected]:~$ cd docs
[email protected]:~/docs$ tar xvf ~/doc.tar.gz 

docsという新しいディレクトリに変更しました。次に、tar xvf(extract、verbose、file-archive)を使用して、ここでコンテンツを解凍しました。

[email protected]:~/docs/home/christopher/Documents$ ls
aerial-view-of-bushes-on-sand-field-3876435.jpg  lorem1.txt  lorem2.txt  lorem3.txt  lorem.txt  mountain-range-2397645.jpg

tarはファイル構造を保持しているため、ファイルを抽出すると/ home / christopher/Documentsにあることに注意してください。これを回避するには、目的のディレクトリ(〜/ Documents)に切り替えて、ディレクトリ構造の代わりに*ワイルドカードを使用してすべてのファイルをコピーします。

7)tarballを特定のディレクトリに抽出します

デフォルトでは、tarballのコンテンツは現在のディレクトリに抽出されます。それは必ずしも望ましいことではありません。

次の方法で、tarballを特定のディレクトリに抽出できます。

tar xvf tar_file -C destination_directory

宛先ディレクトリが存在している必要があるため、事前にmkdirコマンドを使用して作成してください。

概要

Linuxでtarを使用する際に留意する必要があることは次のとおりです。
ほとんどの場合、tarcfまたはtarxvf形式で使用されます。これを覚えておいてください:

  • cはcreateの略です:tarballを作成するために使用します
  • xはextractの略です:tarballを抽出するために使用します
  • fはファイルを表します:tarファイル名(作成または抽出の両方)に使用します。オプションの最後で使用してみてください。
  • vは冗長を表します。これはオプションですが、コマンドで何が起こっているかを示します。

    もちろん、同じtarコマンドでcオプションとxオプションの両方を使用することはできません。

結論

tarコマンドのガイドを楽しんでいましたか?これらのヒントのすべてがあなたに何か新しいことを教えてくれたことを願っています。

このガイドが気に入ったら、ソーシャルメディアで共有してください。コメントや質問がある場合は、以下に残してください。

取り上げてもらいたいトピックについて提案がある場合は、それらもお気軽に残してください。読んでくれてありがとう。


Linux
  1. Zshの使用を開始する

  2. Linuxtacコマンドの使用を開始する

  3. Linuxcatコマンドの使用を開始する

  1. lsの使用を開始する

  2. LinuxでPostgreSQLを使い始める

  3. マルチパス入門–UbuntuVMの実行

  1. GnuCashの使用を開始する

  2. Etcher.ioを使い始める

  3. 正規表現を使い始める