前のガイドでは、tarコマンドを使用してファイルとディレクトリをアーカイブする方法を学びました。 Linuxでは。これからも同じことを行いますが、 Zipを使用します 解凍 プログラム。 zipアプリケーションは、アーカイバーと圧縮ユーティリティの両方であるため、LinuxおよびUnixライクなオペレーティングシステムでファイルとディレクトリをアーカイブ、圧縮、および解凍するために使用できます。このzipアプリケーションは、Windowsおよびその他のOSzipアプリケーションと互換性があります。ただし、gzipとbzip2 主な圧縮アプリケーションです。次に、 Zipを使用してLinuxでファイルとディレクトリをアーカイブする方法を見てみましょう。 プログラム。
Zipプログラムを使用したLinuxでのファイルとディレクトリのアーカイブ
Zipプログラムには、一部のLinuxディストリビューションがプリインストールされています。利用できない場合に備えて、ディストリビューションのデフォルトのパッケージマネージャーを使用してインストールできます。
Arch Linuxおよびバリアントの場合:
$ sudo pacman -S zip unzip
RHEL、CentOS、Fedoraの場合:
$ sudo yum install zip unzip
Debian、Ubuntu、Linux Mintの場合:
$ sudo apt-get install zip unzip
SUSE / openSUSEの場合:
$ sudo zypper install zip unzip
次に、いくつかの例を見てみましょう。
新しいアーカイブの作成
ファイルのグループを1つにアーカイブするには、次のようにします。
$ zip file.zip file1 file2 file3
サンプル出力は次のようになります:
adding: file1 (stored 0%) adding: file2 (stored 0%) adding: file3 (stored 0%)
ここでは、 file.zipという名前のアーカイブを作成しています file1から 、 file2 およびfile3 。 .zipを使用する必要はありません ファイル名の末尾の拡張子。わかりやすくするために追加しました。
同様に、ディレクトリのアーカイブを作成するには、次のコマンドを実行します。
$ zip directory.zip ostechnix/ adding: ostechnix/ (stored 0%)
ここでは、 directory.zipという名前のアーカイブを作成しました ostechnixの フォルダ。これは、親ディレクトリ(つまり)のみをアーカイブに追加することに注意してください。すべてのサブディレクトリを再帰的にアーカイブするには、 -rを使用します 以下のようなフラグ。
$ zip -r directory.zip ostechnix/ adding: ostechnix/ (stored 0%) adding: ostechnix/file.txt (deflated 67%) adding: ostechnix/audio.mp3 (deflated 6%) adding: ostechnix/image.jpg (deflated 3%)
tarユーティリティとは異なり、zipプログラムはアーカイブを作成し、可能な場合はそれを圧縮します。ただし、tarはアーカイバであり、圧縮ツールではありません。
一度に複数のディレクトリやファイルのアーカイブを作成する
場合によっては、ファイルとフォルダのグループからアーカイブを作成する必要があります。これを行うには、次を実行します:
$ zip -r directory.zip ostechnix/ file1 file2 file3 adding: example/ (stored 0%) adding: example/Stephen.jpg (deflated 3%) adding: file1 (stored 0%) adding: file2 (stored 0%) adding: file3 (stored 0%)
上記のコマンドは、 directory.zipという名前のアーカイブを作成します ostechnixから ディレクトリとファイルのグループ、つまり file2 、 file2 、 file3 。
別の例を示しましょう。
$ zip directory.zip file4 adding: file4 (stored 0%)
気づきましたか?既存のアーカイブを指定しましたが、zipプログラムが既存のアーカイブファイルの内容を置き換えずに更新しました。したがって、既存のアーカイブを指定した場合、アーカイブは置き換えられるのではなく更新されます。簡単に言うと、既存のアーカイブが保持され、新しいfile4が追加されます。これは、tarユーティリティに対するzipプログラムの顕著な利点です。
アーカイブの抽出
アーカイブの抽出は、アーカイブの作成と同じくらい簡単です。アーカイブを抽出するには、次のようにします。
$ unzip directory.zip
サンプル出力は次のようになります:
Archive: directory.zip creating: ostechnix/ inflating: ostechnix/file.txt inflating: ostechnix/audio.mp3 inflating: ostechnix/image.jpg extracting: file1 extracting: file2 extracting: file3 extracting: file4
ディレクトリから特定のファイルまたはフォルダを選択的に抽出することもできます。たとえば、次のコマンドは file4を抽出します アーカイブからdirectory.zip 。
$ unzip directory.zip file4 Archive: directory.zip extracting: file4
アーカイブを抽出せずに一覧表示する
実際に解凍せずにアーカイブの内容を一覧表示するには、 -lを使用します フラグ。
$ unzip -l directory.zip Archive: directory.zip Length Date Time Name --------- ---------- ----- ---- 0 2018-03-29 15:55 ostechnix/ 1286 2018-01-11 12:16 ostechnix/file.txt 8073033 2018-03-29 14:03 ostechnix/audio.mp3 15240 2018-03-29 14:45 ostechnix/image.jpg 5 2018-03-29 15:58 file1 5 2018-03-29 15:58 file2 5 2018-03-29 15:58 file3 5 2018-03-29 16:37 file4 --------- ------- 8089579 8 files
これは、アーカイブ全体を抽出するのではなく、特定のファイルを検索して抽出する場合に役立ちます。
暗号化されたアーカイブの作成
zipコマンドのもう1つの注目すべき機能は、暗号化されたアーカイブを作成できることです。そのため、ユーザーはアーカイブの内容を抽出または表示するためにパスワードを入力する必要があります。
暗号化されたアーカイブを作成するには、 -eを使用します フラグ。
$ zip -e -r directory.zip ostechnix/ file1 file2 file3 file4 Enter password: Verify password: adding: ostechnix/ (stored 0%) adding: ostechnix/file.txt (deflated 67%) adding: ostechnix/audio.mp3 (deflated 6%) adding: ostechnix/image.jpg (deflated 3%) adding: file1 (stored 0%) adding: file2 (stored 0%) adding: file3 (stored 0%) adding: file4 (stored 0%
アーカイブの内容を抽出または表示するときは、正しいパスワードを入力する必要があります。
$ unzip directory.zip Archive: directory.zip [directory.zip] ostechnix/file.txt password:
マルチパートアーカイブを作成する
場合によっては、インターネット経由でアーカイブファイルを共有する必要があり、そのアーカイブファイル自体が大きすぎてインターネットやLAN経由で送信できないことがあります。このような場合、マルチパーの小さなサイズのアーカイブを作成して、インターネット経由で送信できます。
ディレクトリを複数の小さな部分にアーカイブするには、たとえば 3 MB それぞれ、私たちは行います:
$ zip -r -s 3m archive.zip ostechnix/
このコマンドは、 archive.z01のようなサイズ3MBのアーカイブファイルを作成します 、 archive.z02 、 archive.z03 ....およびarchive.zip 。これらのファイルを受信者に送信する必要があります。これらのアーカイブファイルを抽出する場合、すべてのコンテンツは ostechnixという名前の単一のフォルダーに抽出されます。 。
アーカイブをGB単位で分割するには、次のように「g」を使用します。
$ zip -r -s 3g archive.zip ostechnix/
他のプログラムのアーカイブを作成する
Zipは標準入力を受け入れることができるので、他のプログラムのアーカイブを作成することが可能です。次のコマンドは、「ls」コマンドの出力をzipコマンドへの入力としてパイプします。
$ ls -l Documents/ | zip ls-documents.zip - adding: - (deflated 56%)
ここで覚えておいてくださいls-documents.zip 「ls」コマンドのアーカイブです。したがって、 -lを使用してアーカイブの内容を表示することはありません スイッチ。
代わりに、コマンドを使用してその内容を表示できます:
$ unzip -p ls-documents.zip | less
ここで、 -p パイプを指します。
圧縮率でアーカイブを圧縮する
最高レベルの圧縮[9]でディレクトリとそのコンテンツをアーカイブするには:
$ zip -r -9 archive.zip ostechnix/
Zipは、以下に示す3つの圧縮レベルをサポートしています。
- 1 –最速(最悪)
- 9 –最も遅い(最高または最高)
- 6 –デフォルトレベル
アーカイブの作成中にファイルまたはフォルダを除外する
アーカイブの作成中に、不要なファイルやサブディレクトリを除外できます。これを行うには、 -xを使用します 以下のようなフラグ:
$ zip -r directory.zip ostechnix/ -x ostechnix/image.jpg
上記のコマンドはostechnixディレクトリのアーカイブを作成しますが、 image.jpgを除外します アーカイブからのファイル。
次のコマンドを使用すると、アーカイブファイルを抽出せずに内容を確認できます。
$ unzip -l directory.zip
既存のアーカイブからファイルを削除する
アーカイブを作成するときに、不要なものを除外するのを忘れている可能性があります。心配ない!アーカイブを作成した後でも、これらのファイルを削除できます。
既存のアーカイブから不要なファイルを削除するには、 -dを使用します 以下に示すようにフラグを立てます。
$ zip -d directory.zip "ostechnix/file.txt" deleting: ostechnix/file.txt
同様に、同じタイプのファイルのグループを削除するには、たとえば .txt filesuse:
$ zip -d directory.zip "ostechnix/*.txt"
そして、今のところこれですべてです。 zip/unzipコマンドの表面をかじっただけです。これらのプログラムを使用すると、さらに多くのことができます。詳細については、manページを参照してください。
$ man zip
$ man unzip