it-swarm-tr.com

Sıkıştırılmış bir arşivden belirli bir dizine yalnızca belirli bir dosyayı ayıklama

Ben yolu biliyorum bir Zip dosyasından tek bir dosya ayıklamak gerekiyor. Aşağıdaki gibi bir komut var mı:

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

Ne yazık ki, yukarıdaki komut ./path/to/zipped/file.txt. Dosyayı belirli bir dizine çıkarmamın bir yolu var mı?

168
Naftuli Kay

-p seçenek:

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

Bu, meta verileri (tarih, izinler,…) değil, yalnızca dosya içeriğini çıkarır. Daha sonra dosyayı taşımak zorunda kalmamak için ödeyeceğiniz bedel budur.

Alternatif olarak, arşivi bir dizin olarak bağlayın ve dosyayı kopyalayın. AVFS ile:

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

Veya Fuse-Zip ile:

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"

Sadece dosya adını değil, sıkıştırılmış dosyanın tam yolunu girin. Yapıyı Zip dosyasında görüldüğü gibi tuttuğunuzdan emin olun.

Bu file.txt içinde myarchive.Zip ila /path/to/unzip/to/file.txt.

169
sMyles

Daha basit sürüm:

unzip ARCHIVE_NAME PATH_OF_FILE_INSIDE_ARCHIVE

Bu PATH_OF_FILE_INSIDE_ARCHIVE geçerli dizinde ancak yalnızca belirtilen dosyayı ayıklar.

Bir Zip arşivindeki tüm dosyaları listelemek için:

unzip -l ARCHIVE_NAME
25
Taukir

Varsayılan olarak Info-Zip kullanan macOS'ta

İstediğinizi bulmak için önce dosyaları listeleyin

unzip -l my.Zip

Ardından arşivden çıkarılacak dosyaların bir listesini sağlayın

unzip my.Zip annoying/path/to/file

Stdout için -p ile birleştirin

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

basit kullanım:

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

ve dosyayı şişirir.

$ 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

Göreceli bir dizine ayıkla

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

Geçerli dizine ayıkla

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

Mutlak dizine ayıkla

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