it-swarm.it

Estrai solo un file specifico da un archivio zippato in una determinata directory

Devo estrarre un singolo file da un file Zip a cui conosco il percorso. Esiste un comando come il seguente:

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

Sfortunatamente, il comando precedente estrae e ricrea l'intero percorso del file in ./path/to/zipped/file.txt. C'è un modo per estrarre semplicemente il file in una directory specificata?

168
Naftuli Kay

Puoi estrarre solo il testo nell'output standard con -p opzione:

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

Questo non estrarrà i metadati (data, permessi, ...), solo il contenuto del file. Questo è il prezzo da pagare per la comodità di non dover spostare il file in seguito.

In alternativa, monta l'archivio come directory e copia il file. Con AVFS :

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

O con 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"

Inserisci il percorso completo per il file zippato, non solo il nome file. Assicurati di mantenere la struttura vista dal file Zip.

Questo estrarrà il singolo file file.txt in myarchive.Zip per /path/to/unzip/to/file.txt.

169
sMyles

Versione più semplice:

unzip ARCHIVE_NAME PATH_OF_FILE_INSIDE_ARCHIVE

Questo ricrea PATH_OF_FILE_INSIDE_ARCHIVE Nella directory corrente ma estrae solo il file specificato.

Per elencare tutti i file in un archivio Zip:

unzip -l ARCHIVE_NAME
25
Taukir

Su macOS , che per impostazione predefinita utilizza Info-Zip

Prima elenca i file per trovare quello che vuoi

unzip -l my.Zip

Quindi fornire un elenco di file da estrarre dall'archivio

unzip my.Zip annoying/path/to/file

Combina con -p per stdout

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

uso semplice:

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

e gonfia il 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

Estrai in una directory relativa

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

Estrai nella directory corrente

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

Estrai in dir assoluto

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