回答:
次の-p
オプションを使用して、テキストのみを標準出力に抽出できます。
unzip -p myarchive.zip path/to/zipped/file.txt >file.txt
これにより、メタデータ(日付、アクセス許可など)は抽出されず、ファイルの内容のみが抽出されます。これは、後でファイルを移動する必要がないという利便性のために支払う価格です。
または、アーカイブをディレクトリとしてマウントし、ファイルをコピーするだけです。AVFS:
mountavfs
cp -p ~/.avfs"$PWD/myarchive.zip#"/path/to/zipped/file.txt .
またはfuse-zipを使用:
mkdir myarchive.d
fuse-zip myarchive.zip myarchive.d
cp -p myarchive.d/path/to/zipped/file.txt .
fusermount -u myarchive.d; rmdir myarchive.d
.jar
。ファイルの名前が異なる場合、AVFSにそのzipハンドラーを使用するように指示する必要がある場合があります~/.avfs$PWD/foo.apk#uzip/META-INF
。
-p
ファイルをそのまま抽出します(-c
テキスト変換を行います)。
unzip -j "myarchive.zip" "in/archive/file.txt" -d "/path/to/unzip/to"
ファイル名だけでなく、zipファイルの完全パスを入力します。zipファイル内から見た構造を保持してください。
これにより、単一のファイルがに抽出file.txt
さmyarchive.zip
れ/path/to/unzip/to/file.txt
ます。
よりシンプルなバージョン:
unzip ARCHIVE_NAME PATH_OF_FILE_INSIDE_ARCHIVE
これによりPATH_OF_FILE_INSIDE_ARCHIVE
、現在のディレクトリに再作成されますが、指定されたファイルのみが抽出されます。
Zipアーカイブ内のすべてのファイルをリストするには:
unzip -l ARCHIVE_NAME
デフォルトでInfo-Zipを使用するmacOSでは
最初にファイルをリストして、必要なものを見つけます
unzip -l my.zip
次に、アーカイブから抽出するファイルのリストを提供します
unzip my.zip annoying/path/to/file
stdoutの場合は-pと組み合わせてください
unzip -p my.zip annoying/path/to/file >./file
unzip zipfile.zip path/inside/zip/file.txt
ファイルが膨張します。
$ unzip -l ./../html.zip | grep wp-config
3328 07-22-2019 15:10 html/wp-config.php
2898 01-07-2019 23:30 html/wp-config-sample.php
$ unzip ./../html.zip html/wp-config.php
Archive: ./../html.zip
inflating: html/wp-config.php
$ ls -lrth
total 4.0K
drwxr-sr-x 2 apache apache 4.0K Jul 26 14:41 html
$ ls -lrth html/*
total 4.0K
-rw-rw-rw- 1 apache apache 3.3K Jul 22 15:10 wp-config.php
-d outpath
、ファイルを入れている場所を指定する引数を。
-j
圧縮されたパスを避けるための議論