descompacte como cortar os principais diretórios

descompacte como cortar os principais diretórios

Eu tenho um arquivo zip. O unzip -l myarchive.zipcomando fornece esta listagem:

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

As pastas raiz são superiores/subtopas para todos os arquivos. Como extrair esses arquivos sem as duas pastas superiores/subtopas?

Por exemplo, quando estou no diretório /home/myuser/public_html files/1.txte files2/2.txtdevo ser extraído diretamente para esse diretório.

Eu tentei unzip myarchive.zip top/subtop/*, mas ele criou diretórios top/subtop de qualquer maneira.

Responder1

Infelizmente, você não pode. Sua única opção real é movê-los após serem extraídos.

Responder2

Você pode tentar o tarcomando, que possui um --strip-componentsrecurso e pode operar em arquivos zip.

Responder3

Usando JMeter como exemplo:

# It's a good idea to set JMETER_HOME.
export JMETER_HOME=/usr/local/jmeter
unzip -q /tmp/apache-jmeter-5.4.1.zip -d $JMETER_HOME
for a in `ls -d -1 $JMETER_HOME/*`; do mv $a/* $JMETER_HOME; rmdir $a; done

Simples e portátil.

Responder4

Usei este comando para copiar todos os arquivos para o diretório raiz após extrair todos os arquivos compactados, funcionou muito bem. Grande economia de tempo:

for /r %f in (00P*) do @copy "%f" 

(http://mlichtenberg.wordpress.com/2011/01/25/command-line-fun-how-to-flatten-a-folder-hierarchy/)

informação relacionada