unzipコマンドでZIPファイルから任意のファイルのみを抽出する方法。
恥ずかしながら、今日の今日までそんな事ができるなんて知らなかったのでメモ。
コマンドの書式は以下の通り。
unzip <source ZIP> <target file>
test.zipからfoo.txtのみを抽出
unzip test.zip foo.txt
$ unzip -Z test.zip
Archive: test.zip
Zip file size: 466 bytes, number of entries: 3
-rw-r--r-- 3.0 unx 4 tx stor 21-Mar-24 20:17 foo.txt
-rw-r--r-- 3.0 unx 5 tx stor 21-Mar-24 20:17 hoge.txt
-rw-r--r-- 3.0 unx 5 tx stor 21-Mar-24 20:17 fuga.png
3 files, 14 bytes uncompressed, 14 bytes compressed: 0.0%
$
$ unzip test.zip foo.txt
Archive: test.zip
extracting: foo.txt
$
$ ls
foo.txt test.zip
test.zipからfoo.txtとfuga.pngのみを抽出
unzip test.zip foo.txt fuga.png
$ unzip -Z test.zip
Archive: test.zip
Zip file size: 466 bytes, number of entries: 3
-rw-r--r-- 3.0 unx 4 tx stor 21-Mar-24 20:17 foo.txt
-rw-r--r-- 3.0 unx 5 tx stor 21-Mar-24 20:17 hoge.txt
-rw-r--r-- 3.0 unx 5 tx stor 21-Mar-24 20:17 fuga.png
3 files, 14 bytes uncompressed, 14 bytes compressed: 0.0%
$
$ unzip test.zip foo.txt fuga.png
Archive: test.zip
extracting: foo.txt
extracting: fuga.png
$
$ ls
foo.txt fuga.png test.zip
test.zipから.txtファイルのみを抽出
unzip test.zip *.txt
$ unzip -Z test.zip
Archive: test.zip
Zip file size: 466 bytes, number of entries: 3
-rw-r--r-- 3.0 unx 4 tx stor 21-Mar-24 20:17 foo.txt
-rw-r--r-- 3.0 unx 5 tx stor 21-Mar-24 20:17 hoge.txt
-rw-r--r-- 3.0 unx 5 tx stor 21-Mar-24 20:17 fuga.png
3 files, 14 bytes uncompressed, 14 bytes compressed: 0.0%
$
$
$ unzip test.zip *.txt
Archive: test.zip
extracting: foo.txt
extracting: hoge.txt
$
$ ls
foo.txt hoge.txt test.zip