Risposte:
unzip <target-zip-file> '<folder-to-extract/*>' -d <destination-path>
funziona bene su EL 6
"\\"
verrebbe usato (altrimenti dovresti sempre ricordare quali personaggi sono fughe speciali). Quindi è una differenza di citazione se l'autore intendesse "citare il carattere glob" (non necessario). In ogni caso, una singola barra rovesciata del genere è un errore di battitura.
Provare:
unzip /path/to/archive.zip 'in/archive/folder/*' -d /path/to/unzip/to
caution: filename not matched: foldername/\*
quando corro unzip $repozip "$2-master/\*" -d /srv/www/magento/
dov'è $2
il nome della cartella nella zip Voglio estrarre tutti i file e le cartelle da
"path/*"
.
mv
seguito per ottenere i file dove ne avevo bisogno.
-j
per quello.
-j
rimuove tutte le informazioni sul percorso e tutti i file vanno nella cartella di destinazione. C'è un modo per rimuovere solo la parte comune del percorso? Simile alla cerniera -r
.
Le due risposte esistenti sono entrambe corrette, ma è un po 'complicato specificare la directory di destinazione, che dovrebbe essere meglio chiarita.
Diciamo che /target/root/
è la directory target dell'azione di decompressione originale, ad esempio:
unzip -qq src.zip -d "/target/root/"
Quindi, dobbiamo usare lo stesso /target/root/
della directory target in seguito, anche se vogliamo estrarre solo una sottodirectory specifica, poiché funziona il modo unzip:
unzip -qq src.zip "sub/dir/*" "/target/root/"
Dopotutto, la regola è in realtà semplice, utilizzare la stessa directory radice di destinazione per l' -d
opzione .
A proposito, l' -qq
opzione è per decomprimere per essere davvero silenzioso, sentiti libero di rimuoverlo.