Linux のパッケージングと圧縮コマンド tar、zip、unzip の詳細な説明

パッケージングと圧縮の違い:
パッケージングとは、複数のファイルまたはディレクトリをまとめてパッケージ全体を形成することを指し、これは保存と転送に便利ですが、サイズは変わりません. 圧縮とは、1 つ以上の大きなファイルまたはディレクトリを結合することを指します.圧縮アルゴリズムは、圧縮の目的を達成するためにファイルのサイズを縮小し、ストレージスペースを節約できます.圧縮するとき、通常、最初に圧縮してから圧縮します;

tar コマンド

tar コマンドのパラメータの前に「-」を付ける場合と付けない場合の違い:
tar コマンドのパラメータの前に「-」を付けずにコマンドを実行した結果に違いはありません。 "-" を付けると System V スタイルに属し、"-" を付けない場合は BSD スタイルに属します。使用方法;

共通パラメータ:

ここに画像の説明を挿入

1. 梱包

例:

a. /root/ の下にある ceshi.txt ファイル、anaconda-ks.cfg ファイル、および time.sh ファイルを「jihe.tar」という名前の 1 つのファイルにパッケージ化します: b. jihe.tar ファイルの内容を確認します:
ここに画像の説明を挿入
c
ここに画像の説明を挿入
. jihe.tar ファイルの内容を /opt ディレクトリにコピーします。
ここに画像の説明を挿入

「-C」でディレクトリを指定しない場合、コンテンツは現在のディレクトリに展開されます

二、圧縮

Linux には主に 3 つの圧縮方式があります:
1.gzip: 圧縮速度が最も速いことが認められています.大きなファイルを圧縮する場合、他の圧縮方式よりも明白です.最も歴史が長く、最も広く使用されている圧縮方式です. 2.bzip:
圧縮 形成されたファイルは小さいですが、使いやすさは gzip ほどではありません
3.xz: 最新の圧縮方法であり、自動的に最適な圧縮率を提供できます

圧縮時に推奨されるサフィックスが示されます:
ここに画像の説明を挿入
例: /root/ ディレクトリにある Golden.apk ファイルをさまざまな圧縮方法で圧縮します。

まず、Golden.apk ファイルのサイズを確認します
ここに画像の説明を挿入
。Golden.apk ファイルのサイズが 187M であることがわかります。

a. Golden.apk ファイルを gzip 圧縮方式で Golden.apk.tar.gz ファイルに圧縮します:
ここに画像の説明を挿入
b. Golden.apk ファイルを bzip2 圧縮方式で Golden.apk.tar.bz2 ファイルに圧縮します
ここに画像の説明を挿入
:上の図 赤いボックスにエラーがあります. このエラーの理由は、bzip2 パッケージが見つからないためです. bzip2 パッケージをインストールし、インストールが完了したら再圧縮する必要があります: 圧縮プロセス中に、次のものが見つかり
ここに画像の説明を挿入
ます
ここに画像の説明を挿入
:

圧縮速度: gz > bz2 > xz
圧縮率: xz > bz2 > gz
ここに画像の説明を挿入

3.減圧

最初に /root/ ディレクトリにある Golden.apk ファイルを削除します:
ここに画像の説明を挿入
tar コマンドは非常にスマートなコマンドです. 解凍するときに、独自の圧縮方法を指定する必要はありません. 解凍する圧縮方法に対応する方法を選択します. . ちょっと一口、例えば:

a. Golden.apk.tar.gz を現在のディレクトリに解凍します:
ここに画像の説明を挿入
gz 圧縮ファイルを解凍するときに -z を追加する必要はありません。パラメーター -xf を直接使用するだけで、他の 2 つの圧縮方法は解凍時に同じです。 tar コマンドが自動的に選択するため、圧縮ファイルは解凍後も存在します。解凍されたファイルの保存場所を指定しない場合は、現在のディレクトリで直接解凍されます。

b. 非圧縮ファイルが保存されているディレクトリを指定し、/opt/ ディレクトリにある Golden.apk.tar.bz2 ファイルを解凍します:
ここに画像の説明を挿入
補足:
a. パッケージ化および圧縮の過程で、次のようなステートメントが表示されることがあります: tar:メンバー名から先頭の「/」を削除します。-Pオプションが追加されておらず、元の絶対パスがパッケージ化または圧縮のために保存されていないため、これはエラーではありません。パッケージ化されたコンテンツの抽出は解凍と同じです。ここで例です:

/root/ ディレクトリを gzip モードで root.tar.gz 圧縮ファイルに圧縮します。

1. -P オプションを追加しない場合:
ここに画像の説明を挿入
2. -P オプションを追加する場合:
ここに画像の説明を挿入
解凍する場合も同様です。ファイルの圧縮時に -P オプションを使用する場合は、解凍時に -P オプションも追加する必要があります。そうしないと、以下に示すように、「tar: メンバー名から先頭の "/" を削除します」も表示されます。

1. -P オプションを追加せずに、-P オプションで /root/ を圧縮した
ここに画像の説明を挿入
後、root.tar.gz ファイルを解凍します。 2. -P オプションを追加して、/root/ を-P オプション ファイル:
ここに画像の説明を挿入
b. tar 圧縮またはパッケージングを使用する場合、指定したファイルを除外する目的は、-exclude を追加することで達成できます。

次の図に示すように、harry ディレクトリを /root/ ディレクトリの下にパックしますが、harry ディレクトリの下の ha.txt ファイルはパックしません。圧縮ファイルについても同じことが言え、指定されたディレクトリの圧縮またはパックについても同じことが言えます
ここに画像の説明を挿入

zip コマンドと unzip コマンド

#zip コマンドと unzip コマンドを使用する前に、システムにこれら 2 つのコマンドのパッケージがインストールされているかどうかを確認してください。インストールされていない場合は、自分でインストールしてください。zip コマンドと unzip コマンドがインストールされているかどうかを確認します

rpm -q zip unzip
ここに画像の説明を挿入
コマンドがインストールされている場合、コマンドのバージョン番号が表示されます

zip コマンド

基本的な使い方:

zip [パラメータ] [圧縮パッケージ名] [圧縮ディレクトリまたはファイルパス]

共通パラメータ:

unzip コマンドの一般的に使用されるパラメーター
ここに画像の説明を挿入
例:
a. harry.zip 圧縮パッケージの解凍結果の表示:
ここに画像の説明を挿入
各ファイルと各ファイルのコンテンツを具体的に表示します。

b. jihe.zip 圧縮パッケージに含まれるファイルを表示します
ここに画像の説明を挿入
c. dajihe.zip 圧縮ファイルが正しいかどうかを確認します:
ここに画像の説明を挿入
すべて OK は、すべてのファイルが正しいことを意味します

d. 圧縮ファイル dajihe.zip を解凍せずに、圧縮パッケージの内容を表示します (表示されたファイル リストを確認し、圧縮率も含めてください)。

ここに画像の説明を挿入

-v で表示される情報は、-l で表示される情報よりも詳細です。

e. dajihe.zip アーカイブを /opt/ ディレクトリに解凍します:
ここに画像の説明を挿入
補足: r オプションを使用して .tar アーカイブ ファイルの内容を増やす方法は?

まず、tar コマンドの -r オプションの役割を理解しましょう:
ここに画像の説明を挿入
tar --help コマンドでヘルプを表示します。

-r オプションの役割: アーカイブするファイルをアーカイブ ファイルの末尾に追加します。たとえば、ユーザーがバックアップ ファイルを作成し、バックアップを忘れたディレクトリまたはファイルがまだあることに気付いた場合、このオプションを使用して、忘れたディレクトリまたはファイルをバックアップ ファイルに追加できます。

使用例:

ここに画像の説明を挿入
上の図を見ると、ops ユーザーのホーム ディレクトリにファイルとディレクトリがマークされていることがわかります。まずディレクトリをアーカイブし、次にファイルをファイルに追加します。

1. アーカイブ操作
ここに画像の説明を挿入
.tar ファイルを生成し、ディレクトリをアーカイブします。

2. calculate_time.sh を .tar ファイルに追加します
ここに画像の説明を挿入
3. 確認します

a. .tar ファイルのアーカイブ情報を表示すると、
ここに画像の説明を挿入
ここに画像の説明を挿入
アーカイブの末尾に calculate_time.sh ファイルが追加されていることがわかります

b. Check_Configuration_20201118_PM.tar を /mnt ディレクトリに抽出し
ここに画像の説明を挿入
、-r オプションを使用してファイルを .tar ファイルに正常に追加します。

おすすめ

転載: blog.csdn.net/Ruishine/article/details/113175429