Linux でファイルを解凍する方法を考えたことはありますか?または、zip アーカイブを作成して抽出する方法は?このチュートリアルだけで、zip ファイルを効果的に管理できます。
圧縮は、品質を落とさずにファイルのサイズを縮小することでファイルを圧縮するための最良かつ一般的な手法の 1 つです。このチュートリアルでは、Linux で zip ファイルを圧縮および解凍する方法と、その他のヒントやコツを学びます。準備はいいですか?
飛び込んで、このチュートリアルの最後で「zip マスター」になります!
前提条件
Active Directory であまりにも多くのパスワード リセット リクエストに悩まされている IT プロフェッショナルの方は、安全な SSPR ソリューションである Specops uReset をチェックしてください。
このチュートリアル全体のデモンストレーションは、Kali Linux 2021.2 で行われました。それでも、Debian ベース (Unbuntu や Kali Linux など)、CentOS、Fedora など、他の Linux ディストリビューションを使用することもできます。
Zip および Unzip パッケージのインストール
Linux で ZIP ファイルに圧縮および解凍するには、zip および unzip と呼ばれるいくつかのパッケージが必要です。それでは、これらのパッケージを apt パッケージ マネージャーでインストールする方法を見ていきましょう。
zip および unzip パッケージをインストールするには、まずデスクトップでターミナルを起動し、作業している Linux ディストリビューションに応じて以下のコマンドを実行します。
以下の各コマンドは sudo
で始まります 権限の昇格を処理するコマンド
Debian の場合
以下のコマンドは apt
を使用しています パッケージマネージャーを install
に zip
と unzip
パッケージ。
sudo apt install zip # Installs the zip package
sudo apt install unzip # Installs the unzip package
Fedora および CentOS の場合
以下のコマンドは yum
を使用しています パッケージ管理ツールを install
に zip
と unzip
パッケージ。
sudo yum install zip # Installs the zip package
sudo yum install unzip # Installs the unzip package
Zip パッケージでファイルを圧縮する
必要なパッケージをすべてインストールしたので、ファイルを圧縮する方法を学びましょう。そのためには、zip
を実行します。 コマンドを使用すると、コマンド ラインと GUI の両方を使用して、ファイルを ZIP パッケージに圧縮できます。それぞれの方法について見ていきましょう!
コマンド ラインによるファイルの圧縮
Linux では、通常、コマンド ラインをかなり使用することになるので、まずコマンド ラインでファイルを圧縮する方法を見てみましょう。
以下のコマンド構文に注意してください。 zip
の後に表示されます コマンド、outpufile
zip ファイルの名前を表します。次に、ファイルとフォルダーの名前が続きます (file1 file2 folder
) を zip ファイルに含めます。
zip [option] outputfile file1 file2 folder
コマンド ラインでファイルを圧縮するデモを行うには、最初にターミナルを開き、~/mydir というディレクトリを作成します。 .次に、2 つのファイルと、~/mydir 内に test1、test2、および myfolder という名前のフォルダーを作成します。 .
1. mkdir
を実行します 以下のコマンドで mydir
を作成します ディレクトリ。
mkdir mydir
2. 以下のコマンドで (touch
を作成します) ) test1.txt
と test2.txt
ファイル。次に (mkdir
を作成します) ) myfolder
ディレクトリ。
touch ~/mydir/test1.txt
touch ~/mydir/test2.txt
mkdir myfolder
3. 以下のコマンドを実行して一覧表示します (ls
) 作業ディレクトリの内容 (~/mydir )、以下に示すように。
ファイルとフォルダーを作成したので、~/mydir を圧縮します。
zip
以下のコマンドは再帰的に (-r
) mydir
を検索する すべてのファイルとサブディレクトリのディレクトリ。完了すると、これらすべてのファイルを newdir.zip
という名前の ZIP ファイルに圧縮します。 .
zip -r newdir.zip mydir
おそらく、~/mydir/test1.txt、~/mydir/test2.txt、および ~/mydir/myfolder のみを圧縮する予定です。 ディレクトリ。そのためには、以下のコマンドを実行してください。
zip
以下のコマンドは再帰的に (-r
) 作業ディレクトリ (mydir
) 内のすべてのファイルとフォルダーを検索します ) test1.txt
と呼ばれる 、 test2.txt
、および myfolder
newfiles.zip
という名前の ZIP ファイルを作成します .
cd mydir
zip -r newfiles test1.txt test2.txt myfolder
圧縮が完了すると自動的に追加されるため、zip ファイルの .zip 拡張子の追加はオプションです。上記の例では、zip コマンドは単に newfiles ではなく、newfiles.zip という名前の ZIP ファイルを作成します。
アーカイブ後に元のファイルを削除する
前のセクションでは、ファイルを ZIP ファイルに圧縮する方法を学びましたが、その後元のファイルが削除されていないことに気付いたでしょう。 -m
を追加 以下に示すように、元のファイルを削除するには、zip コマンドのオプションを使用します。
ZIP ファイルを作成したら、ターミナルを起動し、次のコマンドを実行して、元のファイルを自動的に削除します。 zip
以下のコマンドは、test1.txt
という名前のファイルとフォルダーを圧縮します 、 test2.txt
、および myfolder
newsfiles.zip
に ZIP ファイル、その後削除 (-m
) 元のファイル。
コマンドを実行すると、zip コマンドによって元のファイルが削除されることがわかります。
zip -m -r newfiles.zip test1.txt test2.txt myfolder
既存の Zip ファイルへの新しいファイルの追加
ファイルを ZIP ファイルに圧縮するときに、ファイルを含めるのを忘れた可能性があります。新しいファイルを既存の zip ファイルにどのように追加しますか? zip ファイルを削除して別のファイルを作成することもできますが、もっと良い方法があります。
新しいファイルを既存の ZIP ファイルに追加するには (newfiles.zip )、次のコマンドを実行します。以下のコマンドは更新します (-u
) 既存の ZIP ファイル パッケージ (newfiles.zip
) 再帰的に (-r
) ~/mydir 内のすべてのファイルを検索 ディレクトリに移動し、それらを ZIP パッケージに追加します。
zip -u -r newfiles.zip test3
Zip ファイルからのファイルの削除
以前に、既存の圧縮ファイルにファイルを追加する方法を学習しました。しかし、意図せずに zip ファイルにファイルを追加した場合はどうなるでしょうか?そのファイルを zip ファイルから削除し、-d
を追加したいのは明らかです。 zip
のオプション コマンドでうまくいきます。
ZIP ファイルからファイルを削除するには、zip
を実行します コマンド削除 (-d
) test3
(newfiles.zip
からのファイル ) ZIP ファイル。
zip -d newfiles.zip test3
GUI によるファイルの圧縮
ここまでで、コマンド ラインを使用してファイルを圧縮する方法を学習しました。しかし、グラフィカル インターフェイスでの作業に慣れている場合は、幸運です。 GNU Network Object Model Environment (GNOME) 環境では、数回クリックするだけで zip アーカイブを作成できます。 GNOME は、オペレーティング システム上にあるデスクトップ GUI です。それでは始めましょう!
1. GNOME 環境に切り替え、ファイル マネージャを開きます。
2. ~/mydir 内を移動して、圧縮するファイルを探します。 ディレクトリ。
3. ZIP パッケージを作成するには、圧縮するすべてのファイルを選択し、任意のファイルを右クリックして [圧縮] を選択します。 コンテキストメニューから。
次に、下のポップアップ ウィンドウで圧縮ファイルの形式を選択します。 3 つの形式オプション、.zip、.tar.xz、および .7z があることに注意してください。これらの形式はすべて圧縮形式です。
zip ファイルを作成しているので、.zip を選択します オプション。次に、名前を付けて zip ファイルを作成します (newfiles )、[作成] をクリックします。 .
zip ファイルは、圧縮するファイルが置かれている ~/mydir フォルダー内に自動的に作成されます。
以下で、Linux が newfiles.zip というファイルを作成することに気付くでしょう。 選択したものから。
解凍パッケージによるファイルの解凍
前の例では、ファイルを圧縮する方法を学習しました。ただし、zip ファイルの内容を抽出または解凍する必要がある場合があります。
ファイルの圧縮と同様に、コマンドラインと GUI を使用してファイルを解凍する 2 つの方法があります。どちらの方法でも、以前にインストールした unzip パッケージを利用して ZIP ファイルを解凍します。
コマンドラインによるファイルの解凍
このチュートリアルでは引き続きコマンドライン環境でコマンドを実行するので、コマンドライン方式でファイルの解凍を開始しましょう。
ZIP ファイルを解凍するには、ターミナルを起動して次のコマンドを実行します。以下のコマンドは unzip
になることに注意してください (newdir.zip
の内容 ) ZIPファイル。デフォルトでは、コンテンツは同じディレクトリ (~/mydir) に抽出されます。 ) の (newdir.zip
) ZIP ファイル。
ZIP ファイルの内容を作業ディレクトリ以外のディレクトリに解凍する場合は、
-d
を指定します ZIP ファイルの内容を次のように抽出するディレクトリが続きます:unzip
newdir.zip-d
別のディレクトリ
unzip newdir.zip
GUI によるファイルの解凍
コマンドラインからファイルを解凍するのが大変な場合は、GUI を使用して数回クリックするだけでファイルを解凍してみてください。コマンドラインの方法と同様に、ファイルを抽出する場所も選択できます。
ファイルを解凍するには、GUI によるファイルの圧縮で説明されているように、ファイル マネージャーを開きます。 セクション。解凍する ZIP パッケージを右クリックし、[ここに解凍] を選択します。
[Extract Here] をクリックすると、 、Linux は作業ディレクトリ内の ZIP パッケージ内のすべてのファイルを抽出します。
すべてのファイルを別のディレクトリに抽出する場合は、[抽出先] を選択します。 コンテキスト メニューのオプション。
Zip ファイルの整合性の検証
場合によっては、インターネットから ZIP ファイルをダウンロードするなど、ZIP ファイルが破損することがあります。または、ZIP ファイルが破損したストレージ デバイスに転送された場合。表面上は破損していることに気付かない可能性があるため、完全性を確認することが重要です。
zip ファイルの整合性を確認するには、次のコマンドを実行します。 zip
以下のコマンドを再帰的に (-r
) (newfiles.zip
の作業ディレクトリを検索します) ) zip ファイルを検証し、(-T
) 良好な状態である場合。
以下のコマンドは ZIP ファイルの整合性のみを検証し、その中のファイルとサブディレクトリは検証しません.
zip -r -T newfiles
以下に示すように、テストが成功したことを示すメッセージが表示されます。
解凍前の圧縮ファイルのテスト
破損したファイルを含む ZIP ファイルを抽出すると、特に複数のファイルを含む大きな zip ファイルを処理する場合に、時間が無駄になり、エラーが発生するだけです。そのため、ZIP ファイル内の圧縮ファイルを解凍する前にテストすることをお勧めします。
圧縮ファイルのテストは、ZIP ファイルの整合性の検証と似ていますが、今回は、ZIP ファイル自体だけでなく、ZIP ファイル内の各ファイルをテストしています。
unzip
を実行します テストするコマンド (-t
) (newdir.zip
内の各ファイルのステータス ) zip ファイル。
unzip -t newdir.zip
下の画像でわかるように、解凍パッケージはエラーを検出しませんでした。
解凍せずに Zip ファイルの内容を表示する
おそらく、実際にファイルを抽出するよりも、ZIP ファイルの中身を確認したいでしょう。 unzip
さん、ラッキーですね コマンドには -l
があります zip ファイルの内容を解凍せずに表示するオプション。
ZIP ファイルの内容を表示するには、unzip
を実行します リストするコマンド (-l
) zip ファイルの (newdir.zip
) コンテンツを抽出せずに。
unzip -l newdir.zip
以下のスクリーンショットは、(newdir.zip
) ZIP ファイル。
同じファイル拡張子のファイルを圧縮する
zip ユーティリティを使用していくつかの一般的な使用例をスクリプト化する方法を示すために、多くの異なるファイルを含むディレクトリがあり、特定の拡張子に一致するファイルのみを圧縮する必要があるとします。そのためには、同じ拡張子を持つすべてのファイルを繰り返し検索するスクリプトが必要です。見つかったら、それらを zip ファイルに追加します。
以下のスクリプトの機能と実行方法を見ていきましょう。
以下のスクリプトは、変数 (files
) ファイル拡張子の値 (*.txt
) を保持します。 )、次に別の変数 (targetDir
) ターゲット ディレクトリ (anotherDir
) ).
次に、スクリプトは for
を実行します .txt を含むすべてのファイルを検索するループ機能 (files
) ターゲット ディレクトリ内の拡張子 (anotherDir
)。 .txt の場合 ファイルが見つかり、zip
コマンドが追加します (-u
) そのファイルを (mynewfiles.zip
) ZIPファイル。ファイルの圧縮を自動化する準備はできましたか?
1. テキスト エディターを開き、.sh でスクリプトを保存します。 拡張子 (例:script.sh ) は、シェル プログラミング言語で記述されたファイルの拡張子です。
files=*.txt # Declare variable to hold the .txt extension
targetDir=anotherDir # Declare variable to hold the target directory
for file in $files; do # Searches all files with .txt extension
zip -u $targetDir/mynewfiles $file # Adds found .txt files to mynewfiles.zip file
done
2. 権限を変更して、スクリプトを実行できることを確認します。これを行うには、chmod
を実行します 変更するコマンド (+x
) スクリプトの (script.sh
) 実行権限。
chmod +x script.sh
3. 以下のコマンドを実行して、スクリプトを実行します。以下のコマンドはスクリプトを実行します (script.sh ) スクリプトが現在の作業ディレクトリ内にある限り。
./script.sh
お気づきのとおり、~/mynewfiles.zip という警告メッセージが表示されます。 存在しません。ただし、スクリプトによって自動的に zip ファイルが作成されるため、心配する必要はありません。
結論
Active Directory であまりにも多くのパスワード リセット リクエストに悩まされている IT プロフェッショナルの方は、安全な SSPR ソリューションである Specops uReset をチェックしてください。
このチュートリアルを通じて、zip ファイルの管理方法 (圧縮と解凍) と、ファイルの圧縮プロセスを自動化する方法の実践例を学習しました。約束通り、あなたは「zip マスター」になりました!
次に圧縮するときは、手動プロセスと自動プロセスのどちらを使用しますか?