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

アーカイブを作成および抽出するためのLinuxでの10のtarコマンドの例

Linuxでのtarコマンド

tar(tape archive)コマンドは、Linuxでアーカイブを作成および抽出するために使用されます。複数のファイルを圧縮して1つのアーカイブに保存できます。

一般的に見られるファイル拡張子は、.tar.gzと.tar.bz2です。これらは、それぞれgzipまたはbzipアルゴリズムを使用してさらに圧縮されたtarアーカイブです。

このチュートリアルでは、tarコマンドを使用してLinuxデスクトップまたはサーバーでアーカイブを作成および抽出する日常の作業を行う簡単な例を見ていきます。

tarコマンドの使用

tarコマンドは、ほとんどのLinuxシステムでデフォルトで使用可能であり、個別にインストールする必要はありません。

With tar there are 2 compression formats, gzip and bzip. The "z" option specifies gzip and "j" option specifies bzip. It is also possible to create uncompressed archives.

1。 tar.gzアーカイブを抽出する

より一般的な使用法は、tarアーカイブを抽出することです。次のコマンドは、tar.gzアーカイブからファイルを抽出します

$ tar -xvzf tarfile.tar.gz

使用されるパラメータの簡単な説明は次のとおりです-

x - Extract files
v - verbose, print the file names as they are extracted one by one
z - The file is a "gzipped" file
f - Use the following tar archive for the operation

これらは覚えておくべき重要なオプションのいくつかです

tar.bz2/bzipアーカイブを抽出

拡張子がbz2のファイルは、bzipアルゴリズムで圧縮され、tarコマンドでも処理できます。 zオプションの代わりにjオプションを使用してください。

$ tar -xvjf archivefile.tar.bz2

2。特定のディレクトリまたはパスにファイルを抽出する

ファイルを特定のディレクトリに抽出するには、「-C」オプションを使用してパスを指定します。大文字のCであることに注意してください。

$ tar -xvzf abc.tar.gz -C /opt/folder/

ただし、tarはディレクトリを作成せず、存在しない場合は失敗するため、最初に宛先ディレクトリが存在することを確認してください。

3。単一のファイルを抽出する

アーカイブから単一のファイルを抽出するには、次のようなコマンドの後にファイル名を追加するだけです

$ tar -xz -f abc.tar.gz "./new/abc.txt"

上記のコマンドでは、このように複数のファイルを指定できます

$ tar -xv -f abc.tar.gz "./new/cde.txt" "./new/abc.txt"

4。ワイルドカードを使用して複数のファイルを抽出する

ワイルドカードを使用して、指定されたワイルドカードに一致する一連のファイルを抽出できます。たとえば、拡張子が「.txt」のすべてのファイル。

$ tar -xv -f abc.tar.gz --wildcards "*.txt"

5。 tarアーカイブのコンテンツの一覧表示と検索

tarアーカイブの内容を一覧表示し、それらを抽出しない場合は、「-t」オプションを使用します。次のコマンドは、gzipで圧縮されたtarアーカイブの内容を出力します

$ tar -tz -f abc.tar.gz
./new/
./new/cde.txt
./new/subdir/
./new/subdir/in.txt
./new/abc.txt
...

出力をgrepにパイプしてファイルを検索するか、以下のコマンドでリストを参照します。 「v」冗長オプションを使用すると、各ファイルに関する追加の詳細が出力されます。

tar.bz2 / bzipファイルの場合は、「j」オプションを使用します

上記のコマンドをgrepコマンドと組み合わせて使用​​して、アーカイブを検索します。シンプル!

$ tar -tvz -f abc.tar.gz | grep abc.txt
-rw-rw-r-- enlightened/enlightened 0 2015-01-13 11:40 ./new/abc.txt

6。 tar/tar.gzアーカイブを作成する

既存のtarアーカイブを抽出する方法を学習したので、新しいアーカイブの作成を開始します。 tarコマンドは、選択したファイルをアーカイブまたはディレクトリ全体に配置するように指示できます。ここにいくつかの例があります。

次のコマンドは、ディレクトリを使用してtarアーカイブを作成し、その中のすべてのファイルとサブディレクトリも追加します。

$ tar -cvf abc.tar ./new/
./new/
./new/cde.txt
./new/abc.txt

上記の例では、圧縮アーカイブは作成されません。実際の圧縮なしで複数のファイルをまとめる単なるアーカイブ。

圧縮するには、gzipまたはbzipにそれぞれ「z」または「j」オプションを使用します。

$ tar -cvzf abc.tar.gz ./new/
The extension of the file name does not really matter. "tar.gz" and tgz are common extensions for files compressed with gzip. ".tar.bz2" and ".tbz" are commonly used extensions for bzip compressed files.

7。ファイルを追加する前に確認を求めてください

便利なオプションは「w」です。これにより、tarはファイルをアーカイブに追加する前にすべてのファイルの確認を求めます。これは時々役立つことがあります。

はいの答えが与えられたファイルのみが追加されます。何も入力しない場合、デフォルトの回答は「いいえ」になります。

# Add specific files
$ tar -czw -f abc.tar.gz ./new/*
add ‘./new/abc.txt’?y
add ‘./new/cde.txt’?y
add ‘./new/newfile.txt’?n
add ‘./new/subdir’?y
add ‘./new/subdir/in.txt’?n
# Now list the files added
$ tar -t -f abc.tar.gz
./new/abc.txt
./new/cde.txt
./new/subdir/

8。既存のアーカイブにファイルを追加する

rオプションを使用すると、新しいアーカイブを作成しなくても、既存のアーカイブにファイルを追加できます。これが簡単な例です

$ tar -rv -f abc.tar abc.txt
Files cannot be added to compressed archives (gz or bzip). Files can only be added to plain tar archives.

9。圧縮されたアーカイブ(tar.gz / tar.bz2)にファイルを追加する

圧縮されたアーカイブにファイルを追加することは不可能であることはすでに述べました。ただし、それでも簡単なトリックで実行できます。 gunzipコマンドを使用してアーカイブを解凍し、ファイルをアーカイブに追加して再度圧縮します。

$ gunzip archive.tar.gz
$ tar -rf archive.tar ./path/to/file
$ gzip archive.tar

bzipファイルの場合は、それぞれbzip2コマンドとbunzip2コマンドを使用します。

10。 tarによるバックアップ

実際のシナリオは、定期的にディレクトリをバックアップすることです。 tarコマンドは、cronを介してそのようなバックアップを取るようにスケジュールできます。これが例です-

$ tar -cvz -f archive-$(date +%Y%m%d).tar.gz ./new/

cronを介して上記のコマンドを実行すると、-
'archive-20150218.tar.gz'のような名前のバックアップファイルが作成され続けます。

もちろん、ディスク容量がますます大きなアーカイブで溢れていないことを確認してください。

11。作成中にアーカイブファイルを確認する

「W」オプションは、アーカイブの作成後にファイルを検証するために使用できます。これが簡単な例です。

$ tar -cvW -f abc.tar ./new/
./new/
./new/cde.txt
./new/subdir/
./new/subdir/in.txt
./new/newfile.txt
./new/abc.txt
Verify ./new/
Verify ./new/cde.txt
Verify ./new/subdir/
Verify ./new/subdir/in.txt
Verify ./new/newfile.txt
Verify ./new/abc.txt

圧縮されたアーカイブでは検証を実行できないことに注意してください。非圧縮のtarアーカイブでのみ機能します。

結論

tarコマンドの他に、アーカイブ内のファイルを圧縮およびパックするために使用できるLinuxコマンドラインで使用可能な他の多くのコマンドがあります。たとえば、zipおよびunzipコマンドを使用して、圧縮されたアーカイブを作成することもできます。

zipコマンドは、パスワードで保護された.zipアーカイブを作成するために使用できるzipcloakコマンドもサポートしています。 tar形式は、いかなる種類の暗号化もサポートしていません。パスワードで保護されたtarアーカイブを作成する場合は、 ccryptを使用してください .tarまたは.tar.gzファイルを暗号化するコマンド。

それは今のところすべてです。詳細については、tarコマンドのmanページを「mantar」で確認してください。または、「tar --help」を実行して、tarコマンドでサポートされているすべてのオプションのリストを表示します。


Linux
  1. Linux Catコマンド:使用法と例

  2. Linux nice and reniceコマンドチュートリアル(7例)

  3. Linuxでファイルを圧縮および抽出するための16のtarコマンド

  1. Linux Sedコマンド:使用法と例

  2. ubuntulinuxでtar.gzファイルとtar.bz2ファイルを作成して抽出します

  3. Linuxtarコマンド

  1. Linuxコマンド-概要と例

  2. Linuxでtarコマンドを使用してファイルを圧縮および抽出する方法は?

  3. Linux cpio の例:cpio アーカイブ (および tar アーカイブ) を作成および抽出する方法