Dependendo de como um arquivo zip é criado, algumas vezes ele extrai todos os arquivos diretamente e outras vezes extrai os arquivos em um subdiretório.
Se o último for verdadeiro, como forçar o unzip
comando a "ignorar" esse diretório de primeiro nível?
Exemplo:
cd /tmp
wget http://omeka.org/files/omeka-1.5.1.zip
mkdir omeka
unzip omeka-1.5.1.zip -d omeka/
cd omeka/
ll
O que estou recebendo é /tmp/omeka/omeka-1.5.1/
:
total 12
drwxr-xr-x 3 root root 4096 2012-05-08 18:44 ./
drwxrwxrwt 6 root root 4096 2012-05-08 18:44 ../
drwxr-xr-x 5 root root 4096 2012-04-20 14:54 omeka-1.5.1/
O que eu quero é dos arquivos extraídos /tmp/omeka/
, (um nível acima e nenhum número de versão incluído na estrutura de diretórios)
/tmp/omeka/(files)
Eu sei que posso usar a -j
opção para "caminhos indesejados", mas quero manter a estrutura do subdiretório, mas não a estrutura de diretórios de nível superior. Como posso fazer isso?
/wordpress/
diretório (sem número de versão) dentro do arquivo zip. Na verdade, é bom unzip
, mv
mas não ter controle sobre isso e fazê-lo em duas etapas sempre me irritou um pouco. Felizmente Wordpress também vem em um .tar.gz
sabor :)
cd /tmp/omeka && ln -s -T . omeka-1.5.1
mv
os arquivos, mas eu queria ver se havia uma maneira de fazer isso imediatamente a partir do comando de descompactação