はじめに
このチュートリアルでは、Linux システム上で zip アーカイブの内容を一覧表示する方法を説明します。あなたが開発者、システム管理者、または単なる好奇心旺盛な Linux ユーザーであっても、コマンドラインから zip ファイルを操作する方法を理解することは、非常に役立つスキルです。ここでは、zip アーカイブの基本、内容を一覧表示する手順、およびファイルをより効率的に管理するための実践的なユースケースと例について説明します。
このチュートリアルでは、Linux システム上で zip アーカイブの内容を一覧表示する方法を説明します。あなたが開発者、システム管理者、または単なる好奇心旺盛な Linux ユーザーであっても、コマンドラインから zip ファイルを操作する方法を理解することは、非常に役立つスキルです。ここでは、zip アーカイブの基本、内容を一覧表示する手順、およびファイルをより効率的に管理するための実践的なユースケースと例について説明します。
Linux で zip アーカイブを操作するには、適切なユーティリティがインストールされている必要があります。必要な主要ツールは、zip コマンドと unzip コマンドです。
これらのユーティリティがシステムに既にインストールされているかどうかを確認しましょう。ターミナルを開き、次のコマンドを実行します。
which zip
which unzip
これらのコマンドが /usr/bin/zip や /usr/bin/unzip のようなパスを返す場合、ツールは既にインストールされています。何も出力されない場合は、インストールする必要があります。
Ubuntu では、apt パッケージマネージャーを使用して zip ユーティリティをインストールできます。
sudo apt update
sudo apt install -y zip unzip
インストールを確認しましょう。
zip --version
unzip -v | head -n 1
出力には、インストールされている zip ユーティリティのバージョンが表示されます。以下のような感じです。
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.
必要なツールがインストールされたので、zip アーカイブを作成して操作する準備ができました。
zip アーカイブの内容を一覧表示する方法を学ぶ前に、操作するサンプル zip ファイルを作成しましょう。これにより、このチュートリアル全体で使用できる実践的な例が得られます。
まず、サンプルファイルを保存するディレクトリを作成しましょう。ターミナルで次のコマンドを実行します。
mkdir -p ~/project/zip_demo
cd ~/project/zip_demo
次に、異なる内容を持ついくつかのサンプルファイルを作成しましょう。
echo "This is a text file for our zip demo." > sample_text.txt
echo "Another text file with different content." > another_text.txt
mkdir -p documents
echo "This file is inside a subdirectory." > documents/nested_file.txt
ファイルが正しく作成されたことを確認しましょう。
ls -la
ls -la documents
次のような出力が表示されるはずです。
total 20
drwxrwxr-x 3 labex labex 4096 Jul 15 10:00 .
drwxr-xr-x 3 labex labex 4096 Jul 15 10:00 ..
-rw-rw-r-- 1 labex labex 39 Jul 15 10:00 another_text.txt
drwxrwxr-x 2 labex labex 4096 Jul 15 10:00 documents
-rw-rw-r-- 1 labex labex 35 Jul 15 10:00 sample_text.txt
total 12
drwxrwxr-x 2 labex labex 4096 Jul 15 10:00 .
drwxrwxr-x 3 labex labex 4096 Jul 15 10:00 ..
-rw-rw-r-- 1 labex labex 36 Jul 15 10:00 nested_file.txt
次に、これらのファイルを含む zip アーカイブを作成しましょう。
zip -r sample_archive.zip sample_text.txt another_text.txt documents/
-r オプションは、zip コマンドにすべてのファイルとサブディレクトリを再帰的に含めるように指示します。
次のような出力が表示されるはずです。
adding: sample_text.txt (stored 35 bytes)
adding: another_text.txt (stored 39 bytes)
adding: documents/ (stored 0 bytes)
adding: documents/nested_file.txt (stored 36 bytes)
これで、サンプルファイルとディレクトリを含む sample_archive.zip という名前の zip アーカイブが作成されました。次のステップでは、このアーカイブの内容を一覧表示する方法を学びます。
サンプル zip アーカイブを作成したので、その内容を一覧表示する方法を学びましょう。この目的のための主要なコマンドは、さまざまなオプションを指定した unzip です。
-l オプション (List) の使用zip アーカイブの内容を一覧表示する最も一般的な方法は、-l オプションを指定して unzip コマンドを使用することです。このオプションは、アーカイブ内の各ファイルに関する基本情報を示すテーブルを表示します。
zip デモディレクトリに移動し、サンプルアーカイブの内容を一覧表示しましょう。
cd ~/project/zip_demo
unzip -l sample_archive.zip
次のような出力が表示されるはずです。
Archive: sample_archive.zip
Length Date Time Name
--------- ---------- ----- ----
35 2023-07-15 10:00 sample_text.txt
39 2023-07-15 10:00 another_text.txt
0 2023-07-15 10:00 documents/
36 2023-07-15 10:00 documents/nested_file.txt
--------- -------
110 4 files
出力は以下を示しています。
-Z オプション (ZipInfo) の使用別のオプションは、-Z オプションを使用することです。これにより、より簡潔なリストが提供されます。
unzip -Z sample_archive.zip
次のような出力が表示されるはずです。
Archive: sample_archive.zip
Zip file size: 676 bytes, number of entries: 4
-rw-rw-r-- 3.0 unx 35 tx defN 23-Jul-15 10:00 sample_text.txt
-rw-rw-r-- 3.0 unx 39 tx defN 23-Jul-15 10:00 another_text.txt
drwxrwxr-x 3.0 unx 0 bx stor 23-Jul-15 10:00 documents/
-rw-rw-r-- 3.0 unx 36 tx defN 23-Jul-15 10:00 documents/nested_file.txt
4 files, 110 bytes uncompressed, 110 bytes compressed: 0.0%
この形式は、ファイル権限、圧縮情報、およびその他の詳細をよりコンパクトな形式で表示します。
次のステップでは、zip コンテンツを一覧表示するためのより高度なオプションを調べ、結果を解釈する方法を理解します。
次に、zip アーカイブの内容を一覧表示するためのいくつかの高度なオプションを調べてみましょう。これにより、アーカイブ内のファイルに関するより詳細な情報が得られます。
-v オプション (Verbose) の使用-v オプションは、圧縮方法、圧縮率、CRC (Cyclic Redundancy Check) 値など、アーカイブ内の各ファイルに関するより詳細な情報を提供します。
cd ~/project/zip_demo
unzip -v sample_archive.zip
次のような出力が表示されるはずです。
Archive: sample_archive.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
35 Stored 35 0% 2023-07-15 10:00 a1b2c3d4 sample_text.txt
39 Stored 39 0% 2023-07-15 10:00 e5f6g7h8 another_text.txt
0 Stored 0 0% 2023-07-15 10:00 00000000 documents/
36 Stored 36 0% 2023-07-15 10:00 i9j0k1l2 documents/nested_file.txt
-------- ------- --- -------
110 110 0% 4 files
この出力は、次の追加情報を提供します。
大規模な zip アーカイブに特定のファイルが存在するかどうかを確認したい場合があります。unzip -l コマンドと grep を組み合わせて、特定のファイルを検索できます。
unzip -l sample_archive.zip | grep "nested_file"
このコマンドは、名前に "nested_file" というテキストが含まれるエントリのみを表示します。
36 2023-07-15 10:00 documents/nested_file.txt
zip アーカイブ内のファイルの数をカウントするには、次のコマンドを使用できます。
unzip -l sample_archive.zip | grep -v "Archive:" | grep -v "Length" | grep -v "-------" | grep -v "^$" | wc -l
このコマンドは、ヘッダー行とフッター行をフィルタリングし、残りの行をカウントします。これは、アーカイブ内のファイルとディレクトリに対応します。
出力は次のようになります。
4
これで、高度なオプションを使用して zip アーカイブの内容に関するより詳細な情報を取得し、特定のファイルを検索し、アーカイブ内のファイルをカウントする方法がわかりました。
zip アーカイブの内容を一覧表示する方法を学んだので、これらのスキルが役立つ実用的なシナリオをいくつか見てみましょう。日々の Linux の使用で遭遇する可能性のある、より現実的な例に取り組みます。
バックアップの作成は、zip アーカイブの一般的なユースケースです。設定ファイルのバックアップを作成してみましょう。
cd ~/project/zip_demo
mkdir -p config
echo "server_name=example.com" > config/server.conf
echo "user=admin" > config/user.conf
echo "port=8080" > config/port.conf
## 日付付きのバックアップアーカイブを作成する
zip -r backup_$(date +%Y%m%d).zip config/
このコマンドは、backup_YYYYMMDD.zip の形式で今日の日付を含むバックアップファイルを作成します。
バックアップの内容を確認しましょう。
unzip -l backup_*.zip
バックアップしたすべての設定ファイルが一覧表示された出力が表示されるはずです。
変更点を確認するために、2 つの zip アーカイブの内容を比較する必要がある場合があります。いくつかの変更を加えて、2 番目のバックアップを作成してみましょう。
## ファイルを修正する
echo "port=9090" > config/port.conf
## 新しいファイルを追加する
echo "debug=true" > config/debug.conf
## 新しいバックアップを作成する
zip -r backup_new.zip config/
次に、2 つのバックアップファイルの内容を比較してみましょう。
## 最初のバックアップのファイルを一覧表示する
echo "Original backup:"
unzip -l backup_*.zip | grep -v "Archive:" | grep -v "Length" | grep -v -e "-------"
## 新しいバックアップのファイルを一覧表示する
echo -e "\nNew backup:"
unzip -l backup_new.zip | grep -v "Archive:" | grep -v "Length" | grep -v -e "-------"
新しいバックアップには追加の debug.conf ファイルが含まれており、port.conf ファイルは変更のためにサイズが異なる可能性があることに気付くでしょう。
zip コンテンツの一覧表示から得られた情報を使用して、特定のファイルのみを抽出できます。
## 抽出用のディレクトリを作成する
mkdir -p extracted
## まず内容を一覧表示する
unzip -l backup_new.zip
## debug.conf ファイルのみを抽出する
unzip backup_new.zip "config/debug.conf" -d extracted/
要求されたファイルのみが抽出されたことを確認しましょう。
ls -la extracted/config/
抽出されたディレクトリに debug.conf ファイルのみが表示されるはずです。
これらの実用的な例を習得することで、さまざまな現実世界のシナリオで zip アーカイブを効果的に管理するスキルを習得できました。バックアップの作成から、アーカイブコンテンツの比較、ファイルの選択的な抽出まで、これらのテクニックは Linux でのファイル管理をより効率的にするのに役立ちます。
このチュートリアルでは、Linux で zip アーカイブを操作する方法を学び、特にその内容の一覧表示に焦点を当てました。以下に、取り上げた内容をまとめます。
unzip -l などの基本的なコマンドを使用したアーカイブの内容の一覧表示unzip -v などの高度なオプションの調査これらのスキルは、ファイル管理、トラブルシューティング、バックアップ、および Linux のさまざまなタスクに役立ちます。これで、zip アーカイブを抽出せずに自信を持って検査できるようになり、大規模なアーカイブを操作する際に時間とディスク容量を節約できます。
覚えておくべき主なコマンドを以下に示します。
unzip -l archive.zip: アーカイブの内容の基本的な一覧表示unzip -v archive.zip: 圧縮の詳細を含む詳細な一覧表示unzip -Z archive.zip: 簡潔な一覧表示形式unzip -l archive.zip | grep "filename": 特定のファイルの検索これらのコマンドを自由に使用して、Linux 環境で zip アーカイブを効率的に管理できます。