Descompactar arquivos em diversas subpastas

13. Re: Descompactar arquivos em diversas subpastas

Marlon Batista Ribeiro Júnior
Megadestroyd

(usa Outra)

Enviado em 19/08/2015 - 07:03h

Ainda não foi mais obrigado pela ajuda, vamos continuar tentando. Apareceu a seguinte mensagem no fim do comando;:

error: must specify directory to which to extract with -d option
unzip: cannot find or open HOL, HOL.zip or HOL.ZIP.
unzip: cannot find or open \(2005-2014\), \(2005-2014\).zip or \(2005-2014\).ZIP.
unzip: cannot find or open RODRIGO, RODRIGO.zip or RODRIGO.ZIP.
unzip: cannot find or open CHIKAMI.pdf.zip, CHIKAMI.pdf.zip.zip or CHIKAMI.pdf.zip.ZIP.



  


14. Re: Descompactar arquivos em diversas subpastas

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 19/08/2015 - 08:42h

eita...

Acho que são os nome dos aquivos que tão atrapalhando.

Tente assim:

tmp='/tmp/tmp.zip' && for i in $(find /media/debian/MULTIBOOT/SOFTEXPERT/ -type f -iname "*.zip"); do cp "$i" "$tmp"; unzip "$tmp" -d "$(dirname "$i")"; rm -f "$tmp"; done 



EDIT:: Adicionei mais umas aspas pra garantir. USe o exemplo acima ao invés do que recebeu por email. pfvr

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


15. Re: Descompactar arquivos em diversas subpastas

Marlon Batista Ribeiro Júnior
Megadestroyd

(usa Outra)

Enviado em 19/08/2015 - 09:46h

Cara infelizmente não deu certo, te dando um trabalhão em ... Olha a resposta que obtive:

"; do cp "$i" "$tmp"; unzip "$tmp" -d "$(dirname "$i")"; rm -f "$tmp"; done
cp: impossível obter estado de “find”: Arquivo ou diretório não encontrado
unzip: cannot find or open /tmp/tmp.zip, /tmp/tmp.zip.zip or /tmp/tmp.zip.ZIP.
cp: omitindo o diretório “/media/douglas/MULTIBOOT/SOFTEXPERT/”
unzip: cannot find or open /tmp/tmp.zip, /tmp/tmp.zip.zip or /tmp/tmp.zip.ZIP.
cp: failed to access “ype”: Arquivo ou diretório não encontrado
dirname: invalid option -- 't'
Try 'dirname --help' for more information.
unzip: cannot find or open /tmp/tmp.zip, /tmp/tmp.zip.zip or /tmp/tmp.zip.ZIP.
cp: impossível obter estado de “f”: Arquivo ou diretório não encontrado
unzip: cannot find or open /tmp/tmp.zip, /tmp/tmp.zip.zip or /tmp/tmp.zip.ZIP.
cp: invalid option -- 'm'
Try 'cp --help' for more information.
dirname: invalid option -- 'i'
Try 'dirname --help' for more information.
unzip: cannot find or open /tmp/tmp.zip, /tmp/tmp.zip.zip or /tmp/tmp.zip.ZIP.
cp: impossível obter estado de “*.zip”: Arquivo ou diretório não encontrado
unzip: cannot find or open /tmp/tmp.zip, /tmp/tmp.zip.zip or /tmp/tmp.zip.ZIP.






16. Re: Descompactar arquivos em diversas subpastas

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 19/08/2015 - 10:11h

kkk. rlx o importante é funcionar..

man esse erro ta esquisito... Parece que foi digitado incorretamentente. Vc copiou e colou ou digitou? Se for digitar, cuidado com as aspas e o espaços.

execute ele em duas partes:

1)
tmp='/tmp/tmp.zip' 

2)
for i in $(find /media/debian/MULTIBOOT/SOFTEXPERT/ -type f -iname "*.zip"); do cp "$i" "$tmp"; unzip "$tmp" -d "$(dirname "$i")"; rm -f "$tmp"; done 



EDIT:: CORRIGI mais outro item no find.

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


17. Re: Descompactar arquivos em diversas subpastas

Marlon Batista Ribeiro Júnior
Megadestroyd

(usa Outra)

Enviado em 19/08/2015 - 12:36h

Cara obtive o seguinte retorno:

cp: impossível obter estado de “COSTA/HOLERÍTES/2160”: Arquivo ou diretório não encontrado
unzip: cannot find or open /tmp/tmp.zip, /tmp/tmp.zip.zip or /tmp/tmp.zip.ZIP.
cp: impossível obter estado de “-”: Arquivo ou diretório não encontrado
unzip: cannot find or open /tmp/tmp.zip, /tmp/tmp.zip.zip or /tmp/tmp.zip.ZIP.
cp: impossível obter estado de “HOL”: Arquivo ou diretório não encontrado
unzip: cannot find or open /tmp/tmp.zip, /tmp/tmp.zip.zip or /tmp/tmp.zip.ZIP.
cp: impossível obter estado de “(04-2015)”: Arquivo ou diretório não encontrado
unzip: cannot find or open /tmp/tmp.zip, /tmp/tmp.zip.zip or /tmp/tmp.zip.ZIP.
cp: impossível obter estado de “DALILA”: Arquivo ou diretório não encontrado
unzip: cannot find or open /tmp/tmp.zip, /tmp/tmp.zip.zip or /tmp/tmp.zip.ZIP.
cp: impossível obter estado de “COSTA.pdf.zip”: Arquivo ou diretório não encontrado



18. Re: Descompactar arquivos em diversas subpastas

Fernando
phoemur

(usa Debian)

Enviado em 19/08/2015 - 15:21h

Amigo, vou mudar o enfoque aqui, mas esse aqui é garantido que dá certo, trata-se de um script em python.

Salve como unzip_all.py

#!/usr/bin/env python

import os
import sys
import zipfile

DIRETORIO_BASE = sys.argv[1]

if not os.path.isdir(DIRETORIO_BASE):
raise ValueError('Diretorio invalido')

for root, dirs, names in os.walk(DIRETORIO_BASE):
for files in names:
if '.zip' in files.lower():
try:
with zipfile.ZipFile(os.path.join(root, files), 'r') as z:
print 'Extraindo {}'.format(os.path.join(root, files))
z.extractall(root)
except:
print 'FALHA AO EXTRAIR {}'.format(os.path.join(root, files))


Copie e cole, não escreva porque os espaços fazem parte da identação do código.

Daí execute-o da seguinte forma:


$ ./unzip_all.py /home/diretorio_dos_arquivos

Passe como primeiro argumento na linha de comando o diretorio base da árvore que você quer percorrer. Acho que é isso.

A vantagem do script em python é que você pode executar em qualquer sistema operacional, até pelo windows. Basta ter o python instalado.

Ah, e desculpa de te responder em python em um tópico sobre shellscript, mas acho que estou ficando enferrujado no shellscript...rs

Abraço



19. Re: Descompactar arquivos em diversas subpastas

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 19/08/2015 - 16:25h

Ta osso! é demonhuuu. rs


O problema esta nos espaços, acentos e caracteres especiais dos nomes das pastas e arquivos..

Se o script python do @phoemur não funcionar, o que acho dificil pois o cara manja pracas, rs tenta isso:

 while read arq; do cd "$(dirname "$arq")"; unzip -o *.zip ;done< <(find /home/tony -type f -iname "*.zip")


Simulei alguns arquivos que vc tem ai e deu certo aqui, maaaasss rsrs

Parabéns @Phoemur


abs
EDIT: corrigi mais uma paradinha....rsrrsrs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


20. Re: Descompactar arquivos em diversas subpastas

Marlon Batista Ribeiro Júnior
Megadestroyd

(usa Outra)

Enviado em 19/08/2015 - 19:54h

Phoemur não estou me importando muito com a linguagem quero só resolver o problema porém quando executei o script obtive a seguinte resposta:

root@debian:/home/debian/Documentos# ./unzip_all.py /home/debian/SOFTEXPERT
bash: ./unzip_all.py: Permissão negada



21. Re: Descompactar arquivos em diversas subpastas

Fernando
phoemur

(usa Debian)

Enviado em 20/08/2015 - 14:09h

tem que tornar executável para executar amigo:

chmod +x unzip_all.py

E o programa tem que ter permissão de abrir os arquivos zip também, se não não rola...
Se for do mesmo usuário que o seu vai estar OK, se não for você pode rodar como root que o root pode tudo...rs

Pelo seu PS1 terminando em # acredito que já esteja rodando como root. Veja só o chmod que funcionará


22. Re: Descompactar arquivos em diversas subpastas

Marlon Batista Ribeiro Júnior
Megadestroyd

(usa Outra)

Enviado em 20/08/2015 - 20:02h

Realizei o procedimento e apareceu o seguinte em todos os arquivos:

FALHA AO EXTRAIR /home/debian/SOFTEXPERT/BTIN/GOIANIA/MARCUS MENESES/DOC ADMISSÃO/1586 - DOCA (05-2015) MARCUS MENESES.pdf.zip
FALHA AO EXTRAIR /home/debian/SOFTEXPERT/BTIN/GOIANIA/MARCUS MENESES/BENEFÍCIOS/1588 - VT (05-2015) MARCUS MENESE.pdf.zip
FALHA AO EXTRAIR /home/debian/SOFTEXPERT/BTIN/GOIANIA/VICTOR REIS/HOLERÍTES/2095 - HOL (05-2015) VICTOR REIS.pdf.zip
FALHA AO EXTRAIR /home/debian/SOFTEXPERT/BTIN/GOIANIA/RENATO TAVARES/HOLERÍTES/2094 - HOL (05-2015) RENATO TAVARES.pdf.zip


não entendi o porque da falha.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts