decomprimere come tagliare le migliori directory


13

Ho un archivio zip. Il unzip -l myarchive.zipcomando fornisce questo elenco:

top/subtop/files/1.txt
top/subtop/files2/2.txt
etc

Le cartelle principali sono in alto / in basso per tutti i file. Come estrarre quei file senza le due cartelle top / subtop?

Ad esempio, quando mi trovo nella directory / home / myuser / public_html files/1.txte files2/2.txtdevo essere estratto direttamente in quella directory.

Ho provato unzip myarchive.zip top/subtop/*ma ha comunque creato le directory top / subtop.

Risposte:


8

Sfortunatamente, non puoi. La tua unica vera opzione è di spostarli dopo che sono stati estratti.


Hmm, buono a sapersi. L'ho chiesto perché alcuni giorni fa, durante la creazione di un archivio, stava aggiungendo involontariamente alcuni percorsi dall'alto. Quindi c'era un problema a decomprimerli a causa dei percorsi superiori aggiuntivi. Tuttavia, non posso ripeterlo oggi - oggi funziona bene, cioè quando nella directory top / subtop e facendo zip -r files.zip * non aggiunge il percorso top / subtop come prefisso al percorso dei file. Penso di fare esattamente lo stesso comando, ma stranamente, i risultati sono diversi, quindi non è necessario rimuovere le directory migliori quando decompresso.
Camcam

Si noti che è possibile ignorare tutte le directory (semplicemente posizionando tutti i file uno accanto all'altro) con unzip -j.
Skylar Ittner

4

Potresti provare il tarcomando, che ha una --strip-componentsfunzione e può operare su file zip.


2
Non funziona con tar (GNU tar) 1.15.1:tar: This does not look like a tar archive tar: Error exit delayed from previous errors
Kevin Panko il

2
Il tar di FreeBSD può gestire archivi ZIP. Purtroppo, altre implementazioni di catrame non sono così complete.
Mikhail T.

1
Per gli utenti debian, il tar di FreeBSD è disponibile come bsdtar (apt-get install bsdtar) se vuoi usare tar per estrarre i file zip.
Niklas B,


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.