LinuxターミナルからファイルをZipまたは解凍する方法
- Dave McKay
@TheGurkha
- Updated May28,2019,5:15pm EDT


@TheGurkha

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ファイルを作成し、そこからファイルを抽出するためのツールがあることをすでに知っているかもしれません。zip
unzip
zipcloak
zipdetails
zipsplit
zipinfo
などの関連ユーティリティのファミリー全体があります。
いくつかのLinuxディストリビューションをチェックして、これらのユーティリティが標準インストールに含まれているかどうかを確認しました。 すべてのユーティリティはUbuntu19.04、18.10、および18.04に存在していました。 彼らはまた、Manjaro18.04に存在していました。 Fedora29にはzip
unzip
が含まれていましたが、他のユーティリティはどれもCentOSの場合もそうでした。
不足している要素をFedora29にインストールするには、次のコマンドを使用します:
sudo dnf install perl-IO-Compress
centos7に不足している要素をインストールするには、次のコマンドを使用します。
sudo yum install perl-IO-Compress
上記に記載されていないlinuxディストリビューションからzipユーティリティのいずれかが欠落している場合は、そのlinuxディストリビューションのパ
zipコマンドでZIPファイルを作成する方法
ZIPファイルを作成するには、zip
アーカイブファイルの名前とその中に含めるファ “を追加する必要はありません。zip”の拡張子はアーカイブ名になりますが、そうすれば害はありません。
source_code.zip
という名前のファイルを作成するには、次のコマンドを使用します。
zip source_code *.c *.h
各ファイルは追加されたとおりにリストされます。 ファイルの名前と、そのファイルで達成された圧縮量が表示されます。p>
新しいZIPアーカイブを見ると、”。zip”ファイル拡張子はzip
によって自動的に追加されました。
ls -l source_code.zip
ZIPファイルが作成されるときにzip
-q
(quiet)オプションを使用します。
zip -q source_code *.c *.h
ZIPファイル内のディレクトリを含む
ZIPファイルにサブディレクトリを含めるには、-r
(recursive)オプションを使用し、コマンドラインでサブディレクトリの名前を含めます。 以前と同じようにZIPファイルを作成し、archiveサブディレクトリも含めるには、次のコマンドを使用します。
zip -r -q source_code archive/ *.c *.h
作成しているZIPファイルからファイルを抽出する人に配慮するために、ディレ ZIPファイルを受信した人がそれを抽出すると、すべてのファイルが自分のコンピュータ上のディレクトリ内にきちんと配置されます。
次のコマンドでは、work
work
フォルダの親ディレクトリから発行されていることに注意してください。
zip -r -q source_code work/
圧縮レベルの設定
ZIPアーカイブに追加されたファ 指定できる範囲は0 9で、0は圧縮されません。 圧縮が高いほど、ZIPファイルの作成に時間がかかります。 適度なサイズのZIPファイルの場合、時間差は重大なペナルティではありません。 しかし、適度なサイズのZIPファイルの場合、デフォルトの圧縮(レベル6)はおそらく十分です。
zip
特定のレベルの圧縮を使用するには、コマンドラインでオプションとして番号を”-“で渡します。
zip -0 -r -q source_code work/
デフォルトの圧縮レベルは次のようになります。
6. -6
オプションを指定する必要はありませんが、実行しても害はありません。p>
zip -r -q source_code work/
最大圧縮レベルはレベル9です。
zip -9 -r -q source_code work/
ここでアーカイブされるファイルとディレクトリの選択では、圧縮なし(レベル0)とデフォル デフォルトの圧縮と最高レベルの圧縮(レベル9)の違いは4Kだけです。
あまり見えないかもしれませんが、数百または数千のファイルを含むアー
ZIPファイルにパスワードを追加する
ZIPファイルにパスワードを追加するのは簡単です。 -e
(encrypt)オプションを使用すると、パスワードの入力と検証のための再入力を求められます。
zip -e -r -q source_code work/
unzipコマンドでZIPファイルを解凍する方法
ZIPファ “を提供する必要があることに注意してください。zip”拡張子。
unzip source_code.zip
ファイルが抽出されると、ターミナルウィンドウにリストされます。p>
ZIPファイルには、ファイルの所有権の詳細が含まれていません。 抽出されるすべてのファイルの所有者は、それらを抽出しているユーザーに設定されています。P>
zip
unzip
-q
(quiet)オプションがあるため、ファイルが抽出されるときにファイルリストを表示する必要はありません。
unzip -q source_code.zip
ターゲットディレクトリへのファイルの抽出
特定のディレアーカイブが抽出されるようにします。
unzip -q source_code.zip -d ./development
パスワードで保護されたZIPファイルを抽出します
パスワードで作成されたZIPファイルは、unzip
unzip
はファイルを抽出しません。
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
ファイルの上書き
アーカイブを抽出したが、誤って抽出されたファイ
そのための簡単な修正は、ファイルをもう一度抽出することです。 ただし、以前と同じディレクトリにZIPファイルを抽出しようとすると、unzip
r
(rename)応答とは別に、これらの応答では大文字と小文字が区別されます。p>
- y:はい、このファイルを上書きします
- n:いいえ、このファイルを上書きしないでください
- A:すべて、すべてのファイルを上書きします
- N:なし、 新しい名前の入力を求められます。
unzip
-o
(overwrite)オプ
unzip -o -q source_code.zip
不足しているファイルを置き換える最も効率的な方法は、unzip
-n
(上書きしない)オプションを使用します。
unzip -n source_code.zip
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
zipdetailsコマンドでファイルの詳細を表示
zipdetails
コマンドは、ZIPファイルに関する多くの情報 このコマンドが与えることができる出力の量を処理する唯一の賢明な方法は、less
を介してパイプすることです。
zipdetails source_code.zip | less
ZIPファイルがパスワードで保護されていても、情報にはファイル名が含まれ このタイプの情報は、メタデータとしてZIPファイル内に格納され、暗号化されたデータの一部ではありません。
zipgrepコマンドでファイル内を検索
zipgrep
コマンドを使用すると、ZIPファイ 次の例では、ZIPファイル内のどのファイルにテキスト”keyval”が含まれているかを知りたいとします。h”の中にある。p>
zipgrep keyval.h source_code.zip
ファイルslang.c
getval.c
に文字列”keyvalが含まれていることがわかります。h”。また、ZIPファイルの異なるディレクトリにこれらのファイルのそれぞれの2つのコピーがあることがわかります。
zipinfoコマンドで情報を表示
zipinfo
コマンドを使用すると、ZIPファイル内を見るためのさらに別の方法が得られます。 前と同様に、出力をless
にパイプします。p>
zipinfo source_code.zip | less
左から右への出力が表示されます:
- ファイル権限
- ZIPファイルを作成するために使用されるツールのバージョン
- 元のファイルサイズ
- ファイル記述子(後述)
- 圧縮の方法(デフレーション、この場合)
- データとタイムスタンプ
- ファイルと任意のディレクトリの名前
ファイル記述子は、二つの文字のアップ。 最初の文字は、テキストまたはバイナリファイルを示すために”t”または”b”になります。 大文字の場合、ファイルは暗号化されます。 第二の文字は、四つの文字のいずれかであってもよいです。 この文字は、このファイルに含まれているメタデータの種類を表します:none、拡張ローカルヘッダー、”余分なフィールド”、またはその両方。
- -:どちらも存在しない場合、文字はハイフンになります
- l:拡張ローカルヘッダーがあるが、余分なフィールドがない場合
- x:拡張ローカルヘッダーがないが、余分なフィールドがある場合
- X: 拡張されたローカルヘッダーがあり、余分なフィールドがある場合
zipsplitコマンドでファイルを分割
div>元のzipファイルを小さなzipファイルのセットに分割するコマンド。p>
-n
(size)オプションを使用すると、新しいZIPファイルごとに最大サイズを設定できます。 この例では、source_code.zip
ファイルを分割しています。 新しいZIPファイルを100KB(102400バイト)より大きくすることは望ましくありません。
zipsplit -n 102400 source_code.zip
選択したサイズは、ZIPファイル内のファイルのサイズよりも小さくすることはできません。
これらのコマンドを使用すると、独自のZIPファイルを作成し、受け取ったZIPファイルを解凍し、Linuxターミナルを離れることなく他のさまざまな操作
パンチ紙テープが流行していたときにDave McKayが最初にコンピュータを使用し、それ以来プログラミングを行ってきました。 IT業界で30年以上を過ごした後、彼は現在、フルタイムの技術ジャーナリストです。 彼のキャリアの間に、彼はフリーランスのプログラマー、国際的なソフトウェア開発チームのマネージャー、ITサービスプロジェクトマネージャー、そして最近ではデー DaveはLinuxエバンジェリストであり、オープンソースの提唱者です。完全なバイオを読む”
Leave a Reply