Eu tenho muitos arquivos zip a.zip, b.zip, c.zip, ... e quero extrair cada um deles para novas pastas a, b, c, ... respectivamente, via terminal.
Na verdade, o que eu quero é uma solução que eu possa usar posteriormente com um find
porque eu realmente tenho muitas pastas 2014, 2013, 2012, ... cada uma delas contendo muitos arquivos zip a.zip, b.zip, etc. find . -name "*.zip" -exec {} unzip \;
descompactará todos os arquivos e os colocará em sua respectiva pasta pai.
command-line
zip
Michael
fonte
fonte
Respostas:
Você deve poder usar a
-d
opção de descompactar para definir um diretório alternativo para o conteúdo do arquivo.e assim por diante. Dentro de uma
find
expressão, você deve conseguir derivar o nome do diretório do nome do arquivo zip usando a expansão de parâmetros do shell, por exemploTeste primeiro adicionando um
echo
ieou algo parecido
fonte
test it first…
peçafind
precisa de um diretório, entãofind . -name ...
find
( "Se nenhum ponto de partida for especificado,.
é assumido." )Eu mesmo vim procurar isso, apenas para perceber que já havia feito isso com outros comandos e que poderia ser aplicado a praticamente qualquer outra coisa, do jeito que já estava fazendo.
O método find é muito complicado, sem nenhuma razão.
fonte
.zip
sufixo? Pedindo um amigo.Simplesmente use
fonte
Eu também precisava fazer isso usando o unrar. Isso pode ser conseguido com uma pequena modificação no código do kencinder.
PS: Eu queria adicionar isso como um comentário, mas não tenho pontos de reputação suficientes!
fonte