it-swarm-eu.dev

Extrahujte pouze konkrétní soubor z archivu ZIP do daného adresáře

Potřebuji extrahovat jeden soubor ze souboru Zip, ke kterému vím cestu. Existuje příkaz jako následující:

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

Výše uvedený příkaz bohužel extrahuje a znovu vytvoří celou cestu k souboru na ./path/to/zipped/file.txt. Existuje způsob, jak jednoduše vytáhnout soubor do určeného adresáře?

168
Naftuli Kay

Můžete extrahovat pouze text na standardní výstup pomocí -p možnost:

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

Tímto způsobem nebudou extrahována metadata (datum, oprávnění,…), pouze obsah souboru. To je cena, kterou musíte zaplatit za to, že nemusíte soubor později přesouvat.

Případně připojte archiv jako adresář a pouze zkopírujte soubor. S AVFS :

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

Nebo s 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"

Zadejte úplnou cestu pro soubor ZIP, nejen název souboru. Ujistěte se, že struktura je vidět zevnitř souboru Zip.

Tím se extrahuje jediný soubor file.txt v myarchive.Zip to /path/to/unzip/to/file.txt.

169
sMyles

Jednodušší verze:

unzip ARCHIVE_NAME PATH_OF_FILE_INSIDE_ARCHIVE

Tím se znovu vytvoří PATH_OF_FILE_INSIDE_ARCHIVE v aktuálním adresáři, ale extrahuje pouze určený soubor.

Seznam všech souborů v archivu ZIP:

unzip -l ARCHIVE_NAME
25
Taukir

V systému MacOS , který ve výchozím nastavení používá Info-Zip

Nejprve seznam souborů najít, co chcete

unzip -l my.Zip

Poté zadejte seznam souborů, které chcete extrahovat z archivu

unzip my.Zip annoying/path/to/file

Kombinujte s -p pro stdout

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

jednoduché použití:

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

a dojde k nafouknutí souboru.

$ 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

Extrahujte do relativního ředitele

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

Extrahujte do současného ředitele

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

Extrahujte do absolutního směru

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