it-swarm-vi.com

Chỉ trích xuất một tệp cụ thể từ kho lưu trữ được nén vào một thư mục nhất định

Tôi cần trích xuất một tệp từ tệp Zip mà tôi biết đường dẫn đến. Có một lệnh như sau:

unzip -d . myarchive.Zip path/to/zipped/file.txt

Thật không may, lệnh trên trích xuất và tạo lại toàn bộ đường dẫn đến tệp tại ./path/to/zipped/file.txt. Có cách nào để tôi chỉ cần kéo tập tin vào một thư mục được chỉ định không?

168
Naftuli Kay

Bạn chỉ có thể trích xuất văn bản thành đầu ra tiêu chuẩn với -p Lựa chọn:

unzip -p myarchive.Zip path/to/zipped/file.txt >file.txt

Điều này sẽ không trích xuất siêu dữ liệu (ngày, quyền, '), chỉ nội dung tệp. Đó là cái giá phải trả cho sự tiện lợi của việc không phải di chuyển tệp sau đó.

Ngoài ra, gắn kết kho lưu trữ như một thư mục và chỉ cần sao chép tệp. Với AVFS :

mountavfs
cp -p ~/.avfs"$PWD/myarchive.Zip#"/path/to/zipped/file.txt .

Hoặc với 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
144
unzip -j "myarchive.Zip" "in/archive/file.txt" -d "/path/to/unzip/to"

Nhập đường dẫn đầy đủ cho tệp nén, không chỉ tên tệp. Hãy chắc chắn giữ cấu trúc như nhìn thấy từ trong tệp Zip.

Điều này sẽ trích xuất tập tin duy nhất file.txt trong myarchive.Zip đến /path/to/unzip/to/file.txt.

169
sMyles

Phiên bản đơn giản hơn:

unzip ARCHIVE_NAME PATH_OF_FILE_INSIDE_ARCHIVE

Điều này sẽ tạo lại PATH_OF_FILE_INSIDE_ARCHIVE trong thư mục hiện tại nhưng chỉ trích xuất tệp được chỉ định.

Để liệt kê tất cả các tệp trong kho lưu trữ Zip:

unzip -l ARCHIVE_NAME
25
Taukir

Trên macOS , theo mặc định sử dụng Info-Zip

Đầu tiên liệt kê các tập tin để tìm những gì bạn muốn

unzip -l my.Zip

Sau đó cung cấp một danh sách các tập tin để trích xuất từ ​​kho lưu trữ

unzip my.Zip annoying/path/to/file

Kết hợp với -p cho thiết bị xuất chuẩn

unzip -p my.Zip annoying/path/to/file >./file
4
Cameron Lowell Palmer

sử dụng đơn giản:

unzip zipfile.Zip path/inside/Zip/file.txt

và nó sẽ làm phồng tập tin.

$ 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

Trích xuất một thư mục tương đối

unzip -j -d relativedir archive.Zip path/in/archive/file.ext

Trích xuất vào thư mục hiện tại

unzip -j -d . archive.Zip path/in/archive/file.ext

Trích xuất tuyệt đối

unzip -j -d /absolutedir archive.Zip path/in/archive/file.ext
0
Gapmeister66