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

ファイルとディレクトリの圧縮とアーカイブ

Linuxのアーカイブと圧縮の概要

アーカイブ 複数のファイルとディレクトリ(同じまたは異なるサイズ)を1つのファイルに結合するプロセスです。第二に、圧縮 ファイルまたはディレクトリのサイズを縮小するプロセスです。

アーカイブと圧縮の違いを理解していただければ幸いです。では、トピックに取り掛かりましょう。

アーカイブとディレクトリ

ファイルとディレクトリをアーカイブするための最も一般的なプログラムは次のとおりです。

  1. ジップ
  2. bZip2
  3. タール

LinuxでのZIPコマンドと例

ZIPは、Unix用の圧縮およびファイルパッケージングユーティリティです。各ファイルは、拡張子が .zipのsingle.zip{.zip-filename}ファイルに保存されます。 。

  • zipプログラムは、1つ以上の圧縮ファイルをファイルに関する情報(名前、パス、最終変更の日時、保護、およびファイルの整合性を検証するためのチェック情報)とともに単一のzipアーカイブに入れます。ディレクトリ構造は、1つのコマンドでzipアーカイブにパックできます。
  • テキストファイルでは、2:1から3:1の圧縮率が一般的です。 zipには1つの圧縮方法(デフレーション)があり、圧縮せずにファイルを保存することもできます。 zipに加えて、圧縮するファイルごとに2つのうち良い方を自動的に選択します。
    このプログラムは、配布用に一連のファイルをパッケージ化するだけでなく、ファイルをアーカイブしたり、未使用のファイルやディレクトリを一時的に圧縮してディスク容量を節約したりするのにも役立ちます。

構文:

zip [options] zipfile files_list

構文 zipファイルの作成:

zip myfile.zip filename.txt

zipファイルからファイルを抽出する

実際、Unzipは、Unixシステムで一般的に見られるZIPアーカイブからファイルを一覧表示、テスト、または抽出します。デフォルトの動作(オプションなし)は、指定されたすべてのファイルを現在のディレクトリ(およびその下のサブディレクトリ)に抽出することです。 ZIPアーカイブ。

 unzip myfile.zip 

オプション:
1. -dオプション:

zipアーカイブからファイルを削除します。 zipファイルを作成した後、-dオプションを使用してアーカイブからファイルを削除できます。
したがって、現在のディレクトリに次のファイルがあるとします。
unixcop1.c
unixcop2.c
unixcop3.c
unixcop4.c
unixcop5.c
unixcop6.c
unixcop7.c
unixcop8.c

構文:

zip –d filename.zip file.txt
Command :
zip –d myfile.zip unixcop7.c

myfile.zipファイルからunixcop7.cを削除した後、unzipコマンドを使用してファイルを復元することもできます。

unzip myfile.zip
ls 

2. -uオプション:

zipアーカイブ内のファイルを更新します。このオプションを使用して、指定したファイルのリストを更新したり、既存のzipファイルに新しいファイルを追加したりすることもできます。


構文:

zip –u filename.zip file.txt


同様に、現在のディレクトリにこれらのファイルがあると仮定します。
unixcop1.c
unixcop2.c
unixcop3.c
unixcop4.c

Command :
zip –u myfile.zip unixcop5.c

myfile.zipファイルからunixcop5.cを更新した後、unzipコマンドを使用してファイルを復元することもできます。

Commands:
unzip myfile.zip
ls 
3。 -mオプション:

zip後に元のファイルを削除し、指定したファイルを実際にzipアーカイブに移動することもできます。これにより、指定したzipアーカイブを作成した後にターゲットディレクトリ/ファイルが削除されます。ファイルの削除後にディレクトリが空になると、ディレクトリも削除されます。


構文:

zip –m filename.zip file.txt


現在のディレクトリには次のファイルがあります。
unixcop1.c
unixcop2.c
unixcop3.c
unixcop4.c

Command :
zip –m myfile.zip *.c

その結果、このコマンドは端末によって実行されました:

ls 

4. -rオプション:

ディレクトリを再帰的に圧縮するには、zipコマンドで-rオプションを使用すると、ディレクトリ内のファイルが再帰的に圧縮されます。このオプションは、指定したディレクトリに存在するすべてのファイルを圧縮するのにも役立ちます。

構文:

zip –r filename.zip directory_name

また、現在のディレクトリ(docs)にあるファイルを以下に示します。
unix.pdf
oracle.pdf
linux.pdf

zip –r mydir.zip docs

5. -xオプション:

zipを作成する際にファイルを除外することも同様に重要です。現在のディレクトリ内のすべてのファイルを圧縮していて、一部の不要なファイルを除外したいとします。 -xオプションを使用して、これらの不要なファイルを除外することもできます。

構文:

zip –x filename.zip file_to_be_excluded


また、現在のディレクトリ内のファイルが以下にリストされているとします。
unixcop1.c
unixcop2.c
unixcop3.c
unixcop4.c

Command :
zip –x myfile.zip unixcop3.c

実行時にこのコマンドを実行すると、unixcop3.cファイル以外のすべてのファイルが圧縮されます

Command:
ls 
Output :
myfile.zip //compressed file
unixcop3.c   //this file has been excluded while compressing
6. -vオプション:

詳細モードまたは診断バージョン情報の印刷通常、このオプションを実際の操作に適用すると、圧縮中に進行状況インジケーターを表示できるようになり、zipファイル構造の異常に関する詳細な診断情報が要求されます。


-vが唯一のコマンドライン引数であり、stdinまたはstdoutのいずれかがファイルにリダイレクトされていない場合、診断画面が出力されます。プログラム名、バージョン、およびリリース日が記載されたヘルプ画面ヘッダーに加えて、Info-ZIPホームおよび配布サイトへのポインターがいくつか示されています。次に、ターゲット環境に関する情報(コンパイラのタイプとバージョン、OSバージョン、コンパイル日、およびzip実行可能ファイルの作成に使用される有効なオプション機能)が表示されます。

構文:

zip –v filename.zip file1.txt


以下にリストされているように:
unixcop1.c
unixcop2.c
unixcop3.c
unixcop4.c

zip -v file1.zip *.c


Linuxでのbzip2コマンドと例

bzip2 Linuxのコマンドは、ファイルの圧縮と解凍に使用されます。つまり、元のファイルが使用するよりも少ないストレージスペースで、ファイルを1つのファイルにバインドするのに役立ちます。また、解凍時間が遅くなり、メモリ使用量が多くなります。さらに、Burrows-Wheelerブロックソートテキスト圧縮アルゴリズムとハフマンコーディングを使用することもできます。各ファイルは、ファイルの元の名前の後に拡張子bz2が付いた圧縮バージョンに置き換えられます。

圧縮の構文:

bzip2 [OPTIONS] filenames ...

開梱の構文

 bunzip2 [OPTIONS] filenames ...

オプション:

  1. -z オプション このオプションは強制的に圧縮します。
bzip2 -z input.txt

例:

  • 注: このオプションは、元のファイルも削除します。

  • 2。 -kオプション: このオプションは圧縮を行いますが、元のファイルは削除しません。
 bzip2 -k input.txt

例:

3. -dオプション:

したがって、このオプションは圧縮ファイルの解凍に使用されます。

 bzip2 -d input.txt.bz2

例:

4. -tオプション:

このオプションは、ファイルの整合性チェックを実行し、ファイルを解凍しません。また、ファイルが破損しているかどうかもわかります。

 bzip2 -t input.txt.bz2

例:

5. -vオプション: 詳細モードは、処理された各ファイルの圧縮率を示します。

 bzip2 -v input.txt
例:
  • -h –help: ヘルプメッセージを表示して終了します。
  • -L –ライセンス-V –バージョン :条件に加えて、ソフトウェアバージョン、ライセンス条項を表示するために使用されます。
  • -q –静か :重要でない警告メッセージを抑制します。I/Oエラーやその他の重大なイベントに関連するメッセージも抑制されません。
  • -f –force :出力ファイルを強制的に上書きします。

Linuxでのtarコマンドと例

Linuxの「tar」はテープアーカイブの略で、アーカイブの作成とアーカイブファイルの抽出に使用されます。 Linuxのtarコマンドは、Linuxのアーカイブ機能を提供する重要なコマンドの1つです。 Linux tarコマンドを使用して、圧縮または非圧縮のアーカイブファイルを作成し、それらを維持および変更することもできます。

構文:

tar [options] [archive-file] [file or directory to be archived]

オプション:


-c: アーカイブを作成します
-x: アーカイブを抽出する
-f: 指定されたファイル名でアーカイブを作成します
-t: アーカイブファイル内のファイルを表示または一覧表示
-u: アーカイブし、既存のアーカイブファイルに追加します
-v: 詳細情報を表示します
-A: アーカイブファイルを連結します
-z: zip、gzipを使用してtarファイルを作成するようにtarコマンドに指示します
-j: tbzipを使用してアーカイブtarファイルをフィルタリングする
-W: アーカイブファイルを確認する
-r: 既存の.tarファイルのファイルまたはディレクトリを更新または追加する

アーカイブファイルとは何ですか?


アーカイブファイルは、メタデータとともに1つ以上のファイルで構成されるファイルです。アーカイブファイルは、移植性とストレージを容易にするために複数のデータファイルを1つのファイルに収集するために使用されるため、ファイルを圧縮してより少ないストレージスペースを使用するだけです。

例:


1。オプション-cvfを使用して非圧縮tarアーカイブを作成する:

このコマンドは、現在のディレクトリ内のすべての.cファイルのアーカイブであるfile.tarというtarファイルを作成します。

 tar cvf file.tar *.c

2。オプション-xvfを使用してアーカイブからファイルを抽出する:

このコマンドは、アーカイブからファイルを抽出します。

 tar xvf file.tar

3。オプション-zを使用したtarアーカイブでのgzip圧縮:

このコマンドは、.cファイルのアーカイブであるfile.tar.gzというtarファイルを作成します。

 tar cvzf file.tar.gz *.c

4。オプション-xvzfを使用してgziptarアーカイブ*.tar.gzを抽出する: このコマンドは、tarアーカイブされたfile.tar.gzファイルからもファイルを抽出します。

 tar xvzf file.tar.gz

5。オプション-jを使用してLinuxで圧縮tarアーカイブファイルを作成する:

このコマンドは、gzipのサイズよりも小さいアーカイブファイルを圧縮して作成します。圧縮と解凍はどちらもgzipよりも時間がかかります 。

 tar cvfj file.tar.tbz example.cpp

6。 Linuxで単一のtarファイルまたは指定されたディレクトリを解凍します: このコマンドは、-Cオプションを使用して、指定されたディレクトリ内のファイルを解凍するだけでなく、現在のディレクトリ内のファイルを解凍します。

 tar xvfj file.tar 
or 
 tar xvfj file.tar -C path of file in directoy 

7。 Linuxで複数の.tar、.tar.gz、.tar.tbzファイルを解凍する

このコマンドは、tar、tar.gz、およびtar.bz2アーカイブファイルから複数のファイルを抽出または解凍します。したがって、たとえば、上記のコマンドはアーカイブファイルから「fileA」「fileB」を抽出します。

 tar xvf file.tar "fileA" "fileB" 
or 
 tar zxvf file1.tar.gz "fileA" "fileB"
or 
 tar jxvf file2.tar.tbz "fileA" "fileB"

8。 Linuxで既存のtar、tar.gz、tar.tbzファイルのサイズを確認します

このコマンドは、アーカイブファイルのサイズをキロバイト(KB)で表示します。

 tar czf file.tar | wc -c
or 
 tar czf file.tar.gz | wc -c
or 
 tar czf file.tar.tbz | wc -c

9。 Linuxで既存のtarファイルを更新する

 tar rvf file.tar *.c

10。内容を一覧表示し、オプション-tfを使用してtarfileを指定します

このコマンドは、アーカイブされたファイルのリスト全体を一覧表示します。tarfile内の特定のコンテンツを一覧表示することもできます

 tar tf file.tar

11。パイプをthroughgrepコマンドに適用して、探しているものを見つけます

このコマンドは、アーカイブファイルからのgrep内の言及されたテキストまたは画像のみを一覧表示します。

 tar tvf file.tar | grep "text to find" 
or
 tar tvf file.tar | grep "filename.file extension"
Example:
tar tvf file.tar | grep "unixcop1"

12。 tarfileを検索するための引数としてファイル名を渡すことができます

このコマンドは、アーカイブされたファイルとその詳細を表示します。

 tar tvf file.tar filename
Example:
 tar tvf file.tar unixcop1.c

13。オプション-tvfを使用したアーカイブの表示

 tar tvf file.tar

Linuxのワイルドカードとは


したがって、「ワイルド文字」または「ワイルドカード文字」と呼ばれるワイルドカードは、1つ以上の文字を置き換えるまたは表すために使用される記号です。ワイルドカードは通常、アスタリスク(*)のいずれかです。 、1つ以上の文字または疑問符(?)を表します 、これは単一の文字を表します。

例:

14。 .png形式の画像を検索するには

これにより、アーカイブfile.tarから拡張子が.pngのファイルのみが抽出されます。ワイルドカードオプションは、ファイル名(* .png)に加えて、抽出するファイルの名前のワイルドカードを解釈するようにtarに指示します。これは、ワイルドカード(*)がシェルによって誤って展開されるのを防ぐために一重引用符で囲まれています。

 tar tvf file.tar --wildcards '*.png' 

注: 上記のコマンドでは、ファイル名の代わりに「*」を使用して、その特定のディレクトリに存在するすべてのファイルを取得します。


Linux
  1. Linuxでファイルとディレクトリを隠す簡単な方法

  2. プロのようにLinuxでファイルとディレクトリを探す

  3. Linux ファイルとディレクトリの削除

  1. Linuxでファイルとディレクトリを圧縮する方法(例付き)

  2. Linuxでファイルとディレクトリをアーカイブする方法[パート2]

  3. Linuxで最大のファイルとディレクトリを探す

  1. Linuxでファイルとディレクトリをコピーする方法

  2. Linuxでのコマンドの検索(ファイルとディレクトリの検索)

  3. ディレクトリとファイルに異なる ACL を設定する