Extrair arquivo único zipado em várias pastas com um único comando [RESOLVIDO]

1. Extrair arquivo único zipado em várias pastas com um único comando [RESOLVIDO]

Darlei Cordeiro
aguianacional

(usa Linux Mint)

Enviado em 25/10/2022 - 04:56h

A ideia é bem simples eu quero pegar um arquivo zipado e extrair o conteúdo dele em várias pastas

Por exemplo arquivo.zip > todos os arquivos dentro dele quero extrair na pasta /home/user/01 , /home/user/02 , /home/user/03 ...

Isso servirá para facilitar a atualização de Scripts de vários sites em meu servidor.


  


2. Re: Extrair arquivo único zipado em várias pastas com um único comando

Carlos A. P. Cunha
Carlos_Cunha

(usa Linux Mint)

Enviado em 25/10/2022 - 09:40h

Uma forma simples de fazer isso assim:


for i in $(echo "site1 site2 site3");do unzip 01.zip -d $i ;done


Aonde site1/site2/site3 são os diretórios que vão receber os arquivos e 01.zip é o arquivo zip que será descompactado...



#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#



3. Re: Extrair arquivo único zipado em várias pastas com um único comando [RESOLVIDO]

Darlei Cordeiro
aguianacional

(usa Linux Mint)

Enviado em 25/10/2022 - 11:40h

Muito obrigado mestre, isso é PHP?

Para eu colocar o caminho então é bem simples é só substituir o nome das pastas pelo caminho?:

for i in $(echo "/home/user/site1 "/home/usersite2 "/home/usersite3");do unzip 01.zip -d $i ;done

E como seria o comando para Shell script?



4. Re: Extrair arquivo único zipado em várias pastas com um único comando

Carlos A. P. Cunha
Carlos_Cunha

(usa Linux Mint)

Enviado em 25/10/2022 - 11:54h

aguianacional escreveu:

Muito obrigado mestre, isso é PHP?

Para eu colocar o caminho então é bem simples é só substituir o nome das pastas pelo caminho?:

for i in $(echo "/home/user/site1 "/home/usersite2 "/home/usersite3");do unzip 01.zip -d $i ;done

E como seria o comando para Shell script?


Isso é shell script.
Sim, só mudar o caminho dos destinos e de aonde esta o zip original...


#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#



5. Re: Extrair arquivo único zipado em várias pastas com um único comando [RESOLVIDO]

Darlei Cordeiro
aguianacional

(usa Linux Mint)

Enviado em 25/10/2022 - 12:31h


Perfeito meu querido, mais uma vez, muito obrigado! Que o sr receba em dobro sua generosidade.


6. Re: Extrair arquivo único zipado em várias pastas com um único comando [RESOLVIDO]

Carlos A. P. Cunha
Carlos_Cunha

(usa Linux Mint)

Enviado em 25/10/2022 - 14:02h


aguianacional escreveu:


Perfeito meu querido, mais uma vez, muito obrigado! Que o sr receba em dobro sua generosidade.


Igualmente maninho...

Se sua duvida foi sanada, marque a melhor resposta e de como resolvido o tópico.

#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#



7. Re: Extrair arquivo único zipado em várias pastas com um único comando [RESOLVIDO]

Darlei Cordeiro
aguianacional

(usa Linux Mint)

Enviado em 25/10/2022 - 15:29h


Algo que fiz e foi interessante é usar o coringa * no lugar das pastas, ele extrai para todas. Vai ser interessante.

for i in $(echo "*");do unzip 01.zip -d $i ;done
ou
for i in $(echo "/home/user/*");do unzip 01.zip -d $i ;done


8. Re: Extrair arquivo único zipado em várias pastas com um único comando [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 25/10/2022 - 16:58h

Boa tarde.
Sei que já foi resolvido, mas deixo a sugestão/dica.
Não vejo a necessidade de descompactar N vezes.
Descompacte uma única vez e copie para os diretórios....

Exemplo:
arquivo descompactado na pasta: "unziped/"
Destinos:
echo /home/user/{01..5}
/home/user/01 /home/user/02 /home/user/03 /home/user/04 /home/user/05
Cópia:
echo /home/user/{01..5}|xargs -n1 cp -r unziped/ 


Fica a Dica
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts