Descompactar multiplos arquivos com multiplas senhas no 7zip full no ubuntu (Dúvida)

1. Descompactar multiplos arquivos com multiplas senhas no 7zip full no ubuntu (Dúvida)

Gleyston Barbosa Martins
Dumartins

(usa Ubuntu)

Enviado em 05/11/2019 - 16:59h

Opa gente, sou meio iniciante no linux e estou com uma difuculdade.
Fiz um pequeno script pro 7zip pra descompacatar multiplos arquivos com senha:
FILES=/mnt/sdx
for f in *.7z;
do 7za x -oUNZIPPED $f -ppassowrd;
done
Funciona perfeitamente pra uma senha comum, mas a questão é que se eu baixo um arquivo mais antigo do site que tem os arquivos compactados ele usa outra senha daí o programa não abre aí eu tenho que fazer outro script pra outra senha funcionar.
O que eu gostaria de saber é se não dá pra integrar essas senhas antigas no script, tipo, se ele tentar com uma senha e não abrir, ele tentar com a outra até abrir ou até que se acabem as senhas disponíveis.
Outra coisa, alguns arquivos mais antigos estão em .rar, tem como expandir a busca do script pra esses dois arquivos?
AH, a titulo de informação, estou usando o Ubuntu 19.10


  


2. Re: Descompactar multiplos arquivos com multiplas senhas no 7zip full no ubuntu (Dúvida)

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 05/11/2019 - 20:18h


Dumartins escreveu:

Opa gente, sou meio iniciante no linux e estou com uma difuculdade.
Fiz um pequeno script pro 7zip pra descompacatar multiplos arquivos com senha:
FILES=/mnt/sdx
for f in *.7z;
do 7za x -oUNZIPPED $f -ppassowrd;
done
Funciona perfeitamente pra uma senha comum, mas a questão é que se eu baixo um arquivo mais antigo do site que tem os arquivos compactados ele usa outra senha daí o programa não abre aí eu tenho que fazer outro script pra outra senha funcionar.
O que eu gostaria de saber é se não dá pra integrar essas senhas antigas no script, tipo, se ele tentar com uma senha e não abrir, ele tentar com a outra até abrir ou até que se acabem as senhas disponíveis.
Outra coisa, alguns arquivos mais antigos estão em .rar, tem como expandir a busca do script pra esses dois arquivos?
AH, a titulo de informação, estou usando o Ubuntu 19.10

Boa noite Dumartins.
Sobre expandir a busca, segue:
for arq in $(ls -1 *.{7z,rar});do
....
done


Importante: echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


3. Re: Descompactar multiplos arquivos com multiplas senhas no 7zip full no ubuntu (Dúvida)

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 06/11/2019 - 21:15h

Testa aí:

#!/bin/bash

# Array com as senhas que serão testadas em cada "arquivo compactado":
senhas=( senha1 senha2 senha3 )

for f in `ls -1 *.7z`
do
for senha in ${senhas[@]}
do
7za x -oUNZIPPED $f -p${senha}
if [ $? = 0 ]; then
# senha correta
break
fi
done
done


Editado!


4. Re: Descompactar multiplos arquivos com multiplas senhas no 7zip full no ubuntu (Dúvida)

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 06/11/2019 - 21:48h


Ryuk escreveu:

Testa aí:

#!/bin/bash

# Array com as senhas que serão testadas em cada "arquivo compactado":
senhas=( senha1 senha2 senha3 )
n=0

for f in `ls -1 *.{7z,rar}`
do
for senha in ${senhas[@]}
do
7za x -oUNZIPPED $f -p${senhas[$n]}
#Testa cada senha do array na sequência,
#se correta passa para o próximo arquivo (break),
#se incorreta testa a senha seguinte do array (let n++):
if [ $? = 0 ]; then
# senha correta
break
else
# senha incorreta
let n++
fi
done
done

Ryuk, não quero ser chato, nem o "dono da verdade", o intuito é engrandecer o fórum, com dicas e conhecimentos....
Mas, tem um pequeno detalhe, no seu script:
Ao dar o "break", faça n=0.
Alias, como esta chamando as ARRAYS com um laço for . . .in,
não é necessário o índice [n]
Exemplo:
passwd=(pwd00 pwd01 pwd02 pwd03 pwd04);
for arq in $(ls -1 *.{txt,sh});do
for senha in ${passwd[@]};do
echo "ARQ: $arq SENHA:$senha";
[[ CONDIÇÃO ]] && break;
done;echo;
done


Att.: Marcelo Oliver


5. Re: Descompactar multiplos arquivos com multiplas senhas no 7zip full no ubuntu (Dúvida)

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 06/11/2019 - 22:41h


msoliver escreveu:
Ryuk, não quero ser chato, nem o "dono da verdade", o intuito é engrandecer o fórum, com dicas e conhecimentos....
Mas, tem um pequeno detalhe, no seu script:
Ao dar o "break", faça n=0.
Alias, como esta chamando as ARRAYS com um laço for . . .in,
não é necessário o índice [n]
Exemplo:
passwd=(pwd00 pwd01 pwd02 pwd03 pwd04);
for arq in $(ls -1 *.{txt,sh});do
for senha in ${passwd[@]};do
echo "ARQ: $arq SENHA:$senha";
[[ CONDIÇÃO ]] && break;
done;echo;
done


Att.: Marcelo Oliver


É mesmo, ficou redundante... Nem tinha percebido... É que eu não sou lá tão fera em scripts como você... hehehe!!!
Vou dar uma melhorada. Valeu!


6. Re: Descompactar multiplos arquivos com multiplas senhas no 7zip full no ubuntu (Dúvida)

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 07/11/2019 - 12:23h


Ryuk escreveu:


msoliver escreveu:
Ryuk, não quero ser chato, nem o "dono da verdade", o intuito é engrandecer o fórum, com dicas e conhecimentos....
Mas, tem um pequeno detalhe, no seu script:
Ao dar o "break", faça n=0.
Alias, como esta chamando as ARRAYS com um laço for . . .in,
não é necessário o índice [n]
Exemplo:
passwd=(pwd00 pwd01 pwd02 pwd03 pwd04);
for arq in $(ls -1 *.{txt,sh});do
for senha in ${passwd[@]};do
echo "ARQ: $arq SENHA:$senha";
[[ CONDIÇÃO ]] && break;
done;echo;
done


Att.: Marcelo Oliver


É mesmo, ficou redundante...
Nem tinha percebido... É que eu não sou lá tão fera em scripts como você... hehehe!!!
Vou dar uma melhorada. Valeu!


O problema que me refiro, não é redundância.
Do modo que vc fez, quando é dado o break, o laço interno é interrompido e o índice para "pegar" a ARRAY, não é zerado,
logo, se deu o break e "n" era igual a 2, vai começar o próximo laço com ${ARRAY[2]},
quando deveria ser ${ARRAY[0]},
para fazer todas as combinações....

Att.: Marcelo Oliver


7. Re: Descompactar multiplos arquivos com multiplas senhas no 7zip full no ubuntu (Dúvida)

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 07/11/2019 - 12:39h

msoliver escreveu:
O problema que me refiro, não é redundância.
Do modo que vc fez, quando é dado o break, o laço interno é interrompido e o índice para "pegar" a ARRAY, não é zerado,
logo, se deu o break e "n" era igual a 2, vai começar o próximo laço com ${ARRAY[2]},
quando deveria ser ${ARRAY[0]},
para fazer todas as combinações....

Att.: Marcelo Oliver


Sim, eu já tinha entendido isso... eram dois problemas: tanto o fato de usar o índice do array (Redundante: já que não era necessário por conta do loop "for" já recriar a variável (senha) em sequência a cada loop, certo?!); como não resetar o índice do array quando encontrasse o valor correto. Já editei o poste anterior, acho que agora tá ok! Confere lá, qualquer erro só falar!!!! ;-)

P.S.: A propósito, o autor do tópico nem aí pra nós, né!? kkkkk


8. Re: Descompactar multiplos arquivos com multiplas senhas no 7zip full no ubuntu (Dúvida)

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 07/11/2019 - 13:41h


Ryuk escreveu:

msoliver escreveu:
O problema que me refiro, não é redundância.
Do modo que vc fez, quando é dado o break, o laço interno é interrompido e o índice para "pegar" a ARRAY, não é zerado,
logo, se deu o break e "n" era igual a 2, vai começar o próximo laço com ${ARRAY[2]},
quando deveria ser ${ARRAY[0]},
para fazer todas as combinações....

Att.: Marcelo Oliver


Sim, eu já tinha entendido isso... eram dois problemas: tanto o fato de usar o índice do array (Redundante: já que não era necessário por conta do loop "for" já recriar a variável (senha) em sequência a cada loop, certo?!); como não resetar o índice do array quando encontrasse o valor correto. Já editei o poste anterior, acho que agora tá ok! Confere lá, qualquer erro só falar!!!! ;-)

P.S.: A propósito, o autor do tópico nem aí pra nós, né!? kkkkk

Ryuk, testei e está ok.
Quanto ao "Real Interessado", está adotando a "politica do Cavalo *".
* $(base64 -d <<< "VMOhIGNhZ2FuZG8gZSBhbmRhbmRvCg==")
Quem quer APRENDER, se dedica.....

Att.: Marcelo Oliver