
Eu tenho um arquivo zip. O unzip -l myarchive.zip
comando 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.txt
e files2/2.txt
devo 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 tar
comando, que possui um --strip-components
recurso 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/)