Linux gzip コマンドのファイル圧縮実装原理とコード例

Linux gzip コマンドのファイル圧縮実装原理とコード例

gzip は、Linux システムでファイルの圧縮と解凍によく使用されるコマンドです。このコマンドで圧縮された新しいファイルには、通常、拡張子「.gz」が付きます。

もう一度強調しておきますが、gzip コマンドはファイルの圧縮にのみ使用でき、ディレクトリの圧縮には使用できません。ディレクトリが指定されている場合でも、ディレクトリ内のすべてのファイルのみが圧縮されます。

gzip コマンドの基本的な形式は次のとおりです。

[root@localhost ~]# gzip [オプション] ソースファイル

コマンド内のソース ファイルは、圧縮操作を実行する場合は共通ファイルを参照し、解凍操作を実行する場合は圧縮ファイルを参照します。このコマンドでよく使用されるオプションとその意味を表 1 に示します。

表1 gzipコマンドの一般的なオプションと意味

オプション意味
-c圧縮されたデータを標準出力に出力し、元のファイルを保存します。
-d圧縮ファイルを解凍します。
-r指定されたディレクトリとそのサブディレクトリ内のすべてのファイルを再帰的に圧縮します。
-v圧縮および解凍されたファイルごとに、対応するファイル名と圧縮率が表示されます。
-l圧縮ファイルごとに、次のフィールドが表示されます。
  • 圧縮ファイルのサイズ。
  • 圧縮されていないファイルのサイズ。
  • 圧縮比;
  • 圧縮されていないファイルの名前。
-番号圧縮レベルを指定するために使用されます。-1 は最低の圧縮レベルであり、圧縮率は最低です。-9 は最高の圧縮率です。デフォルトの圧縮率は -6 です。

【例1】基本圧縮

gzip 圧縮コマンドは非常に簡単です。圧縮パッケージの名前を指定する必要すらありません。ソースファイル名を指定するだけで済みます。試してみましょう:

[root@localhost ~]# gzip インストール.log
#instal.log ファイルを圧縮する
[root@localhost ~]# ls
anaconda-ks.cfg インストール.log.gz インストール.log.syslog
#圧縮ファイルは生成されるが、ソースファイルも消えてしまう

【例2】ソースファイルの圧縮を維持する

gzip コマンドを使用してファイルを圧縮すると、ソース ファイルが消えて、圧縮されたファイルになります。このとき、強迫性障害を患い、作者に「ファイルを圧縮したときにソースファイルが消えないようにすることはできますか?」と尋ねる人もいるでしょう。まあ、それは可能ですが、厄介です。

[root@localhost ~]# gzip -c anaconda-ks.cfg >anaconda-ks.cfg.gz
#-c オプションを使用しますが、圧縮されたデータを画面に出力するのではなく、圧縮ファイルにリダイレクトします。これにより、ソースファイルを削除せずにファイルを圧縮できます。
[root@localhost ~]# ls
anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog
#圧縮ファイルとソースファイルの両方が存在することがわかります

【例3】ディレクトリを圧縮する

gzip コマンドでディレクトリを圧縮できることは当然のことと思われるかもしれません。 試してみましょう:

[root@localhost ~]# mkdir テスト
[root@localhost ~]# test/test1 をタッチします
[root@localhost ~]# test/test2 をタッチします
[root@localhost ~]# touch test/test3 #テストディレクトリを作成し、その中にいくつかのテストファイルを作成します
[root@localhost ~]# gzip -r test/
#ディレクトリを圧縮してもエラーは報告されません
[root@localhost ~]# ls
anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog テスト
#しかし、テストディレクトリはまだ存在し、圧縮ファイルに変換されていないことがわかりました
[root@localhost ~]# ls テスト/
テスト1.gz テスト2.gz テスト3.gz
#オリジナルのgzipコマンドはディレクトリをパックするのではなく、ディレクトリ内のすべてのサブファイルを個別に圧縮します

Linux では、パッケージ化と圧縮は別々に処理されます。 gzip コマンドは圧縮のみ可能でパッケージ化はできないため、パッケージ ディレクトリは存在せず、ディレクトリ内のファイルのみが圧縮されます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux で履歴コマンドを表示および実行する方法
  • Linux のコマンドライン履歴を隠す方法を教えます
  • Linuxのシェル履歴コマンド記録機能
  • Linux コマンドラインで他のユーザーと通信する方法
  • Linux には make コマンドがありません (make: *** ターゲットが指定されておらず、makefile または make コマンドのインストール方法が見つかりません)
  • Linux telnetコマンドの使用
  • Linuxコマンド履歴の調整方法の詳細な説明

<<:  MySQL は ACID トランザクションをどのように実装しますか?

>>:  Vueパンくずコンポーネントのカプセル化方法

推薦する

Vue のリスナーの基本的な使用例

目次序文1. リスナーの基本的な使い方2. リスナー形式3. ページに入るとすぐに監視とディープモニ...

Velocity.js はページスクロール切り替え効果を実装します

今日は、複数ページのスクロール切り替え効果を備えた Web サイトを簡単かつ効率的に開発できる、小さ...

Linux で圧縮ファイルの内容を表示する 10 の方法 (要約)

一般的に、アーカイブされたファイルや圧縮されたファイルの内容を表示するには、まず解凍してから表示する...

CSS ボックスの折りたたみに対する 5 つの解決策

まず、ボックスコラプスとは何でしょうか?親ボックスの内側にあるべき要素が外側にあります。第二に、箱は...

純粋な CSS3 で蝶が羽ばたく様子を再現する例

純粋なCSS3で蝶が羽ばたく様子を再現。まずはその効果をご覧ください どうですか?効果はかなりいいで...

js キャンバスは角丸画像を実現します

この記事では、角を丸くするためのjsキャンバスの具体的なコードを参考までに紹介します。具体的な内容は...

クリエイティブな会社概要ウェブページデザイン

ユニークな「About」ページ自分を他の人たちと差別化する素晴らしい方法は、本当にユニークな自己紹介...

CSSボックスの表示/非表示とトップレイヤーの実装コード

.imgbox{ 幅: 1200ピクセル; 高さ: 612px; 右マージン: 自動; 左マージン...

画像マーキー効果を実現するネイティブJS

今日は、ネイティブ JS で実装された画像マーキー効果を紹介します。効果は次のとおりです。 実装され...

Vue はトークンの有効期限が切れると自動的にログインページにジャンプする機能を実装します

このプロジェクトは最近テストされ、テスターから、トークンの有効期限が切れたため、ルートが自動的にログ...

MySql の集計関数に条件式を追加する方法

MySQL のフィルタリングのタイミングは、集計関数で使用される where 条件と having ...

Linux のバックグラウンドで実行するいくつかの方法 (まとめ)

1. ノーフープハングアップ信号を無視してプログラムを実行する追加メモnohup コマンドは、ハン...

vuexプロジェクトにおけるログインステータス管理の実践プロセス

目次道具:ログインシナリオ:練習する:シナリオ1: 思考と実践シナリオ2: 思考と実践要約する道具:...

Vue カスタム オプション時間カレンダー コンポーネント

この記事の例では、参考のためにvueカスタムオプションタイムカレンダーコンポーネントの具体的なコード...

繰り返し送信、繰り返し更新、バックオフ防止に関する問題と解決策の分析

1つ。序文<br />この種の質問は、どの専門掲示板でも見かけます。Google で検索...