it-swarm-id.com

Ekstrak hanya file tertentu dari arsip zip ke direktori yang diberikan

Saya perlu mengekstrak satu file dari file Zip yang saya tahu jalurnya. Apakah ada perintah seperti berikut:

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

Sayangnya, perintah di atas mengekstrak dan membuat ulang seluruh jalur ke file di ./path/to/zipped/file.txt. Apakah ada cara bagi saya untuk hanya menarik file ke direktori yang ditentukan?

168
Naftuli Kay

Anda dapat mengekstrak hanya teks ke output standar dengan -p pilihan:

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

Ini tidak akan mengekstrak metadata (tanggal, izin, ...), hanya konten file. Itulah harga yang harus dibayar untuk kenyamanan tidak harus memindahkan file sesudahnya.

Atau, pasang arsip sebagai direktori dan cukup salin file. Dengan AVFS :

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

Atau dengan 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
unzip -j "myarchive.Zip" "in/archive/file.txt" -d "/path/to/unzip/to"

Masukkan path lengkap untuk file zip, bukan hanya nama file. Pastikan untuk menjaga struktur seperti yang terlihat dari dalam file Zip.

Ini akan mengekstrak file tunggal file.txt di myarchive.Zip hingga /path/to/unzip/to/file.txt.

169
sMyles

Versi lebih sederhana:

unzip ARCHIVE_NAME PATH_OF_FILE_INSIDE_ARCHIVE

Ini akan membuat ulang PATH_OF_FILE_INSIDE_ARCHIVE dalam direktori saat ini tetapi hanya mengekstrak file yang ditentukan.

Untuk membuat daftar semua file dalam arsip Zip:

unzip -l ARCHIVE_NAME
25
Taukir

Pada macOS , yang secara default menggunakan Info-Zip

Pertama-tama daftarkan file untuk menemukan apa yang Anda inginkan

unzip -l my.Zip

Kemudian berikan daftar file untuk diekstrak dari arsip

unzip my.Zip annoying/path/to/file

Gabungkan dengan -p untuk stdout

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

penggunaan sederhana:

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

dan itu akan mengembang file.

$ 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

Ekstrak ke dir relatif

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

Ekstrak ke dir saat ini

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

Ekstrak ke dir absolut

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