Unixでフォルダを圧縮しようとしています。 gzipコマンドを使用してこれを実行できますか?
答え1
いいえ。
zip
とは異なり、gzip
圧縮アルゴリズムとして機能します。ただ。
いくつかの理由で(一部はテープドライブの時代にさかのぼります)、Unixはアーカイブデータと呼ばれるプログラムを使用します。このプログラムはtar
、、などの圧縮プログラムを使用して圧縮できますgzip
。bzip2
7zip
ディレクトリを「圧縮」するには、正しいコマンドは次のとおりです。
tar -zcvf archive.tar.gz directory/
これがtar
教えてくれます
それを使用して圧縮ジ(gzip) アルゴリズム
氏(作成)次からアーカイブ
directory
(tar
デフォルトは再帰的です)Vアーカイブに追加するすべてのファイルを(詳細に)(/dev/stderrでパイプされたコマンドに影響を与えないように)リストします。
出力を次のように保存します。F(ファイル) 名前が指定されました
archive.tar.gz
このtar
コマンドは、純粋にユーザーの便宜のためにフラグを介してgzip
サポートを提供します-z
。 /lib コマンドgzip
は完全に独立しています。上記のコマンドは実際には次のようになります。
tar -cv directory | gzip > archive.tar.gz
アーカイブを解凍して現在のディレクトリに抽出するには、次のようにします。
tar -zxvf archive.tar.gz
このコマンドは実際には次のようになります。
gunzip < archive.tar.gz | tar -xv
tar
他にも多くのオプションと用途があります。時々マンページを読むことを心からお勧めします。
答え2
このスイッチを使用すると、gzip
コマンドはディレクトリを単一のzipファイルに再帰的に圧縮しません。-r
代わりに、ディレクトリ構造を調べて、見つかった各ファイルを別々のファイルに圧縮します。
はい
今後
$ tree dir1/
dir1/
|-- dir11
| |-- file11
| |-- file12
| `-- file13
|-- file1
|-- file2
`-- file3
次に、gzip
コマンドを実行します。
$ gzip -r dir1
後ろに
$ tree dir1/
dir1/
|-- dir11
| |-- file11.gz
| |-- file12.gz
| `-- file13.gz
|-- file1.gz
|-- file2.gz
`-- file3.gz
ディレクトリ構造を圧縮するには、このtar
コマンドを使用して結果.tar
ファイルを圧縮できます。
$ tar zcvf dir1.tar.gz dir1/
はい
$ tar zcvf dir1.tar.gz dir1/
dir1/
dir1/file1
dir1/file2
dir1/dir11/
dir1/dir11/file11.gz
dir1/dir11/file12.gz
dir1/dir11/file13.gz
dir1/file3
これにより、次のような単一のファイルが生成されます。
$ ls -l | grep tar
-rw-rw-r-- 1 saml saml 271 Oct 1 08:07 dir1.tar.gz
内容を確認できます。
$ tar ztvf dir1.tar.gz
drwxrwxr-x saml/saml 0 2013-10-01 08:05 dir1/
-rw-rw-r-- saml/saml 0 2013-10-01 07:45 dir1/file1
-rw-rw-r-- saml/saml 0 2013-10-01 07:45 dir1/file2
drwxrwxr-x saml/saml 0 2013-10-01 08:04 dir1/dir11/
-rw-rw-r-- saml/saml 27 2013-10-01 07:45 dir1/dir11/file11.gz
-rw-rw-r-- saml/saml 27 2013-10-01 07:45 dir1/dir11/file12.gz
-rw-rw-r-- saml/saml 27 2013-10-01 07:45 dir1/dir11/file13.gz
-rw-rw-r-- saml/saml 0 2013-10-01 07:45 dir1/file3
答え3
「[Linuxでは] gzipを使用してフォルダ全体を圧縮できますか?」という質問に対する答えは、次の構文を使用してzip
gzipの代わりにこのプログラムを使用できることです。
zip -r <zip file name> <folder to zip>
答え4
私pigz
(GZipの並列実装)
tar -cvf - dir | pigz -9 > /path/to/dir.tar.gz