Articles

LinuxターミナルからファイルをZipまたは解凍する方法

  • Dave McKay

    @TheGurkha

  • Updated May28,2019,5:15pm EDT

  • Dave McKay

    @TheGurkha

  • Updated May28,2019,5:15pm EDT
  • Updated May28,2019,5:15pm EDT
  • Linuxシェルプロンプト
    fatmawati achmad zaenuri/.com

    zipファイルは、Windows、macos、さらにはlinuxシステムで一般的に使用される普遍的なアーカイブです。 いくつかの一般的なLinux端末コマンドを使用して、zipアーカイブを作成したり、ファイルを解凍したりすることができます。

    ZIP圧縮アーカイブファイル形式

    Windowsの領域でZIP形式の優位性のおかげで、ZIPファイルはおそらく世界で最も一般的な圧縮アーカイブ形式です。

    しばらくしてください。タールGzとtar.bz2ファイルはLinuxでは一般的ですが、WindowsユーザーはおそらくZIP形式でアーカイブを送信します。 あなたはいくつかのファイルをアーカイブし、Windowsユーザーに送信したい場合や、ZIP形式は皆のための最も簡単な、最も互換性のあるソリューションになりま

    関連:aからファイルを抽出する方法。タールgzまたは.タールlinux上のbz2ファイル

    zip、unzip、およびその他のユーティリティ

    MacosのようなLinuxおよびUnixライクなオペレーティングシステムには、ZIPファイルを作成し、そこからファイルを抽出するためのツールがあることをすでに知っているかもしれません。zipunzipzipcloakzipdetailszipsplitzipinfoなどの関連ユーティリティのファミリー全体があります。

    Advertisement

    いくつかのLinuxディストリビューションをチェックして、これらのユーティリティが標準インストールに含まれているかどうかを確認しました。 すべてのユーティリティはUbuntu19.04、18.10、および18.04に存在していました。 彼らはまた、Manjaro18.04に存在していました。 Fedora29にはzipunzipが含まれていましたが、他のユーティリティはどれもCentOSの場合もそうでした。

    不足している要素をFedora29にインストールするには、次のコマンドを使用します:

    sudo dnf install perl-IO-Compress

    Fedoraのzipインストールコマンド

    centos7に不足している要素をインストールするには、次のコマンドを使用します。

    sudo yum install perl-IO-Compress

    CentosのZipインストールコマンド

    CentosのZipインストールコマンド

    div>

    広告

    上記に記載されていないlinuxディストリビューションからzipユーティリティのいずれかが欠落している場合は、そのlinuxディストリビューションのパ

    zipコマンドでZIPファイルを作成する方法

    ZIPファイルを作成するには、zipアーカイブファイルの名前とその中に含めるファ “を追加する必要はありません。zip”の拡張子はアーカイブ名になりますが、そうすれば害はありません。

    source_code.zipという名前のファイルを作成するには、次のコマンドを使用します。

    zip source_code *.c *.h

    ターミナルウィンドウでzipコマンド

    各ファイルは追加されたとおりにリストされます。 ファイルの名前と、そのファイルで達成された圧縮量が表示されます。p>

    ターミナルウィンドウのzipコマンドからの出力

    広告

    新しいZIPアーカイブを見ると、”。zip”ファイル拡張子はzipによって自動的に追加されました。

    ls -l source_code.zip

    ターミナルウィンドウのzipアーカイブ上のls

    ZIPファイルが作成されるときにzip-q(quiet)オプションを使用します。

    zip -q source_code *.c *.h

    ターミナルウィンドウでの-q quietオプション

    ZIPファイル内のディレクトリを含む

    ZIPファイルにサブディレクトリを含めるには、-r(recursive)オプションを使用し、コマンドラインでサブディレクトリの名前を含めます。 以前と同じようにZIPファイルを作成し、archiveサブディレクトリも含めるには、次のコマンドを使用します。

    zip -r -q source_code archive/ *.c *.h

    ターミナルウィンドウの-r recursiveオプション

    作成しているZIPファイルからファイルを抽出する人に配慮するために、ディレ ZIPファイルを受信した人がそれを抽出すると、すべてのファイルが自分のコンピュータ上のディレクトリ内にきちんと配置されます。

    広告

    次のコマンドでは、workworkフォルダの親ディレクトリから発行されていることに注意してください。

    zip -r -q source_code work/

    ターミナルウィンドウで作業ディレクトリを圧縮する

    圧縮レベルの設定

    ZIPアーカイブに追加されたファ 指定できる範囲は0 9で、0は圧縮されません。 圧縮が高いほど、ZIPファイルの作成に時間がかかります。 適度なサイズのZIPファイルの場合、時間差は重大なペナルティではありません。 しかし、適度なサイズのZIPファイルの場合、デフォルトの圧縮(レベル6)はおそらく十分です。

    zip特定のレベルの圧縮を使用するには、コマンドラインでオプションとして番号を”-“で渡します。

    zip -0 -r -q source_code work/

    -0圧縮オプションをターミナルウィンドウで

    デフォルトの圧縮レベルは次のようになります。

    6. -6オプションを指定する必要はありませんが、実行しても害はありません。p>

    zip -r -q source_code work/

    ターミナルウィンドウでのレベル6圧縮

    最大圧縮レベルはレベル9です。

    zip -9 -r -q source_code work/

    -9ターミナルウィンドウでの圧縮

    広告

    ここでアーカイブされるファイルとディレクトリの選択では、圧縮なし(レベル0)とデフォル デフォルトの圧縮と最高レベルの圧縮(レベル9)の違いは4Kだけです。

    あまり見えないかもしれませんが、数百または数千のファイルを含むアー

    ZIPファイルにパスワードを追加する

    ZIPファイルにパスワードを追加するのは簡単です。 -e(encrypt)オプションを使用すると、パスワードの入力と検証のための再入力を求められます。

    zip -e -r -q source_code work/

    ターミナルウィンドウでzipファイルにパスワードを追加する

    unzipコマンドでZIPファイルを解凍する方法

    ZIPファ “を提供する必要があることに注意してください。zip”拡張子。

    unzip source_code.zip

    ターミナルウィンドウでunzipコマンド

    広告

    ファイルが抽出されると、ターミナルウィンドウにリストされます。p>

    ターミナルウィンドウでの解凍の出力

    ZIPファイルには、ファイルの所有権の詳細が含まれていません。 抽出されるすべてのファイルの所有者は、それらを抽出しているユーザーに設定されています。P>

    zipunzip-q(quiet)オプションがあるため、ファイルが抽出されるときにファイルリストを表示する必要はありません。

    unzip -q source_code.zip

    ターミナルウィンドウで-qオプションを解凍

    ターゲットディレクトリへのファイルの抽出

    特定のディレアーカイブが抽出されるようにします。

    unzip -q source_code.zip -d ./development

    ターミナルウィンドウでターゲットディレクトリに解凍します

    パスワードで保護されたZIPファイルを抽出します

    パスワードで作成されたZIPファイルは、unzipunzipはファイルを抽出しません。

    unzip -q source_code.zip

    ターミナルウィンドウでパスワードで解凍コマンド

    広告

    パスワードが他の人に見られることや、コマンド履歴に保存されていることを気にしない場合は、コマンドラインでパスワードを-P(パスワード)オプション。 (あなたは資本”Pを使用する必要があります。p>

    unzip -P fifty.treacle.cutlass -q source_code.zip

    ターミナルウィンドウでパスワードオプションを使用して解凍する

    ファイルを除外する

    特定のファ この例では、”で終わるファイル以外のすべてのファイルを抽出します。h”拡張子。

    unzip -q source_code.zip -x *.h

    ターミナルウィンドウで解凍excludeオプション

    ファイルの上書き

    アーカイブを抽出したが、誤って抽出されたファイ

    広告

    そのための簡単な修正は、ファイルをもう一度抽出することです。 ただし、以前と同じディレクトリにZIPファイルを抽出しようとすると、unzipr(rename)応答とは別に、これらの応答では大文字と小文字が区別されます。p>

    • y:はい、このファイルを上書きします
    • n:いいえ、このファイルを上書きしないでください
    • A:すべて、すべてのファイルを上書きします
    • N:なし、 新しい名前の入力を求められます。

    ターミナルウィンドウでプロンプトを上書きする

    unzip-o(overwrite)オプ

    unzip -o -q source_code.zip

    ターミナルウィンドウで上書きオプション

    不足しているファイルを置き換える最も効率的な方法は、unzip-n(上書きしない)オプションを使用します。

    unzip -n source_code.zip

    ターミナルウィンドウで-n never overwriteオプションで解凍

    ZIPファイル内を見る

    ZIPファイル内のファイルのリストを これは、-l(list archive)オプションで行うことができます。 出力を管理しやすくするために、lessをパイプ処理します。

    unzip -l source_code.zip | less

    ターミナルウィンドウでリストオプションを解凍

    広告

    出力は、ZIPファイル内のディレクトリとファイル、その長さ、アーカイブに追加された日時を示しています。 “Q”を押してlessから終了します。

    ターミナルウィンドウでアーカイブ出力を一覧表示

    異なる種類の情報を与えるZIPファイル内を覗く方法は他にもあります。

    zipcloakコマンドでパスワードを追加する

    ZIPファイルを作成したが、パスワードを追加するのを忘れた場合、何ができますか? zipcloakコマンドを使用して、ZIPファイルにパスワードをすばやく追加できます。 コマンドラインでZIPファイルの名前を渡します。 パスワードの入力を求められます。 パスワードをもう一度入力して確認する必要があります。

    zipcloak source_code.zip

    ターミナルウィンドウでzipcloak

    zipdetailsコマンドでファイルの詳細を表示

    zipdetailsコマンドは、ZIPファイルに関する多くの情報 このコマンドが与えることができる出力の量を処理する唯一の賢明な方法は、lessを介してパイプすることです。

    zipdetails source_code.zip | less

    ターミナルウィンドウのzipdetailsコマンド

    広告

    ZIPファイルがパスワードで保護されていても、情報にはファイル名が含まれ このタイプの情報は、メタデータとしてZIPファイル内に格納され、暗号化されたデータの一部ではありません。

    ターミナルウィンドウ内のzipdetailsの出力

    zipgrepコマンドでファイル内を検索

    zipgrepコマンドを使用すると、ZIPファイ 次の例では、ZIPファイル内のどのファイルにテキスト”keyval”が含まれているかを知りたいとします。h”の中にある。p>

    zipgrep keyval.h source_code.zip

    ターミナルウィンドウのzipgrepコマンド

    ファイルslang.cgetval.cに文字列”keyvalが含まれていることがわかります。h”。また、ZIPファイルの異なるディレクトリにこれらのファイルのそれぞれの2つのコピーがあることがわかります。

    zipinfoコマンドで情報を表示

    zipinfoコマンドを使用すると、ZIPファイル内を見るためのさらに別の方法が得られます。 前と同様に、出力をlessにパイプします。p>

    zipinfo source_code.zip | less

    ターミナルウィンドウのzipinfoコマンド

    左から右への出力が表示されます:

    • ファイル権限
    • ZIPファイルを作成するために使用されるツールのバージョン
    • 元のファイルサイズ
    • ファイル記述子(後述)
    • 圧縮の方法(デフレーション、この場合)
    • データとタイムスタンプ
    • ファイルと任意のディレクトリの名前
    広告

    ファイル記述子は、二つの文字のアップ。 最初の文字は、テキストまたはバイナリファイルを示すために”t”または”b”になります。 大文字の場合、ファイルは暗号化されます。 第二の文字は、四つの文字のいずれかであってもよいです。 この文字は、このファイルに含まれているメタデータの種類を表します:none、拡張ローカルヘッダー、”余分なフィールド”、またはその両方。

    • -:どちらも存在しない場合、文字はハイフンになります
    • l:拡張ローカルヘッダーがあるが、余分なフィールドがない場合
    • x:拡張ローカルヘッダーがないが、余分なフィールドがある場合
    • X: 拡張されたローカルヘッダーがあり、余分なフィールドがある場合

    ターミナルウィンドウにzipinfo出力

    zipsplitコマンドでファイルを分割

    div>元のzipファイルを小さなzipファイルのセットに分割するコマンド。p>

    -n(size)オプションを使用すると、新しいZIPファイルごとに最大サイズを設定できます。 この例では、source_code.zipファイルを分割しています。 新しいZIPファイルを100KB(102400バイト)より大きくすることは望ましくありません。

    zipsplit -n 102400 source_code.zip

    ターミナルウィンドウのzipsplitコマンド

    広告

    選択したサイズは、ZIPファイル内のファイルのサイズよりも小さくすることはできません。

    これらのコマンドを使用すると、独自のZIPファイルを作成し、受け取ったZIPファイルを解凍し、Linuxターミナルを離れることなく他のさまざまな操作

    Dave McKay
    パンチ紙テープが流行していたときにDave McKayが最初にコンピュータを使用し、それ以来プログラミングを行ってきました。 IT業界で30年以上を過ごした後、彼は現在、フルタイムの技術ジャーナリストです。 彼のキャリアの間に、彼はフリーランスのプログラマー、国際的なソフトウェア開発チームのマネージャー、ITサービスプロジェクトマネージャー、そして最近ではデー DaveはLinuxエバンジェリストであり、オープンソースの提唱者です。完全なバイオを読む”