Como descompactar varios arquivos? [RESOLVIDO]

1. Como descompactar varios arquivos? [RESOLVIDO]

Bruno De Carvalho Santos
bruno5646

(usa Debian)

Enviado em 10/02/2017 - 11:32h

Tenho em meu computador varios arquivos compactados que eu preciso descompactar, eles estão no formato .tar.gz, .tar.xz, .tar.bz2... Existe um comando no qual posso descompactar todos os arquivos de uma vez só? sendo que cada arquivo fique em uma pasta separada
Tipo...
Descompactar todos os arquivos .tar.xz
depois descompactar todos os arquivos .tar.bz2 e por ai vai... pois descompactar um por um vai ser muito trabalhoso kk


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/02/2017 - 18:52h

PauloHAC escreveu:

Veja se isso resolve:
#!/bin/bash

ARQ=`ls -1 | egrep ".rar|.zip|.gz|.bz2|.7z|.xz"`

for a in $ARQ ; do
dir=$(echo $a | cut -d"." -f1)
mkdir $dir
atool -X $dir $a
done

Obs.: Instale o pacote atool "sudo apt-get install atool", ele é compatível com diversos formatos. Adicione as extensões que precisa na variável ARQ.


Cara, mais simples que isso não tem! Testa aí. :\

3. Re: Como descompactar varios arquivos?

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 10/02/2017 - 19:54h

bruno5646 escreveu:

Tenho em meu computador varios arquivos compactados que eu preciso descompactar, eles estão no formato .tar.gz, .tar.xz, .tar.bz2... Existe um comando no qual posso descompactar todos os arquivos de uma vez só? sendo que cada arquivo fique em uma pasta separada
Tipo...
Descompactar todos os arquivos .tar.xz
depois descompactar todos os arquivos .tar.bz2 e por ai vai... pois descompactar um por um vai ser muito trabalhoso kk


tenta isso aí

#!/bin/sh
QTD=$(find $1 -iname "*.tar.gz" | wc -l)
i="1"
while [ $i -le $QTD ];do
ArquivoCompleto=$(ls *.tar.gz | head -$i | tail -1)
tar -vzxf "$ArquivoCompleto"
i=$(($i+1))
done

QTD=$(find $1 -iname "*.tar.bz2" | wc -l)
j="1"
while [ $j -le $QTD ];do
ArquivoCompleto=$(ls *.tar.bz2 | head -$j | tail -1)
tar -jxvf "$ArquivoCompleto"
j=$(($j+1))

done

QTD=$(find $1 -iname "*.tar.xz" | wc -l)
j="1"
while [ $j -le $QTD ];do
ArquivoCompleto=$(ls *.tar.xz | head -$j | tail -1)
tar -Jxf "$ArquivoCompleto"
j=$(($j+1))

done


NOTA: Adaptado desse aqui >>> https://www.vivaolinux.com.br/script/Descompactar-arquivos-RAR-e-ZIP-em-lote
_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


4. Re: Como descompactar varios arquivos? [RESOLVIDO]

Bruno /Dolastro
BrunoDolastro

(usa Linux Mint)

Enviado em 11/02/2017 - 00:08h

Da uma olhada nesse artigo: https://www.vivaolinux.com.br/dica/Descompactando-varios-arquivos-de-uma-vez
Acho que pode ser adaptado pra sua necessidade.


5. Re: Como descompactar varios arquivos?

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/02/2017 - 11:05h

Sábado é dia de fazer scripts, então...
#!/bin/bash

(($# < 1)) && { echo "Use: $0 <file.tar.gz|file.tar.bz2|file.tar.xz> ..." >&2 ; exit 1; }

# Diretórios de destino para cada tipo de arquivo
declare -A DIRS=(
[gz]=~/files_tar_gz
[bz2]=~/files_tar_bz2
[xz]=~/files_tar_xz
)

# Cria os diretórios
mkdir -p ${DIRS[@]} 2>/dev/null

# Pega os arquivos e determina o comando correto para a extração para cada tipo de arquivo
for file; do
case "$file" in
*.tar.gz) RUN="tar -C ${DIRS[gz]} -zxf $file" ;;
*.tar.bz2) RUN="tar -C ${DIRS[bz2]} -jxf $file";;
*.tar.xz) RUN="tar -C ${DIRS[xz]} -xf $file" ;;
*) continue;;
esac

# Extrai o arquivo para a pasta de destino adequada, ou imprime um erro e continua para o próximo arquivo
echo "[RUN] : $file ..."
eval $RUN 2>/dev/null || echo "[ERR] : $file" >&2
done


Usos:
script arquivo1.tar.bz2 arquivo2.tar.bz2 arquivo3.tar.xz arquivo4.tar.gz arquivo5.tar.gz ... 

script /pasta/com/dezenas/de/arquivos/em/bz2/gz/xz/* 


--
Linux Counter: #596371


6. Re: Como descompactar varios arquivos? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/02/2017 - 20:54h

Veja se isso resolve:
#!/bin/bash

ARQ=`ls -1 | egrep ".rar|.zip|.gz|.bz2|.7z|.xz"`

for a in $ARQ ; do
dir=$(echo $a | cut -d"." -f1)
mkdir $dir
atool -X $dir $a
done

Obs.: Instale o pacote atool "sudo apt-get install atool", ele é compatível com diversos formatos. Adicione as extensões que precisa na variável ARQ.


7. Re: Como descompactar varios arquivos? [RESOLVIDO]

Bruno De Carvalho Santos
bruno5646

(usa Debian)

Enviado em 18/02/2017 - 18:05h

Mauriciodez escreveu:

bruno5646 escreveu:

Tenho em meu computador varios arquivos compactados que eu preciso descompactar, eles estão no formato .tar.gz, .tar.xz, .tar.bz2... Existe um comando no qual posso descompactar todos os arquivos de uma vez só? sendo que cada arquivo fique em uma pasta separada
Tipo...
Descompactar todos os arquivos .tar.xz
depois descompactar todos os arquivos .tar.bz2 e por ai vai... pois descompactar um por um vai ser muito trabalhoso kk


tenta isso aí

#!/bin/sh
QTD=$(find $1 -iname "*.tar.gz" | wc -l)
i="1"
while [ $i -le $QTD ];do
ArquivoCompleto=$(ls *.tar.gz | head -$i | tail -1)
tar -vzxf "$ArquivoCompleto"
i=$(($i+1))
done

QTD=$(find $1 -iname "*.tar.bz2" | wc -l)
j="1"
while [ $j -le $QTD ];do
ArquivoCompleto=$(ls *.tar.bz2 | head -$j | tail -1)
tar -jxvf "$ArquivoCompleto"
j=$(($j+1))

done

QTD=$(find $1 -iname "*.tar.xz" | wc -l)
j="1"
while [ $j -le $QTD ];do
ArquivoCompleto=$(ls *.tar.xz | head -$j | tail -1)
tar -Jxf "$ArquivoCompleto"
j=$(($j+1))

done


NOTA: Adaptado desse aqui >>> https://www.vivaolinux.com.br/script/Descompactar-arquivos-RAR-e-ZIP-em-lote
_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


Vlw por responder e desculpe pela demora do retorno, é que ultimamente esta corrido aqui..

Testei esse seu script e descompactou 64 dos 128 arquivos que tenho, porém ele fica dando um erro no final, que traduzindo diz que o arquivi não é um arquivo bz2... depois posto um print do erro aqui


8. Re: Como descompactar varios arquivos? [RESOLVIDO]

Bruno De Carvalho Santos
bruno5646

(usa Debian)

Enviado em 18/02/2017 - 18:07h

Segunda-feira vou testar os outros para ver se descompacta todos os arquivos


9. Re: Como descompactar varios arquivos? [RESOLVIDO]

Bruno De Carvalho Santos
bruno5646

(usa Debian)

Enviado em 20/02/2017 - 14:05h

ru4n escreveu:

Sábado é dia de fazer scripts, então...
#!/bin/bash

(($# < 1)) && { echo "Use: $0 <file.tar.gz|file.tar.bz2|file.tar.xz> ..." >&2 ; exit 1; }

# Diretórios de destino para cada tipo de arquivo
declare -A DIRS=(
[gz]=~/files_tar_gz
[bz2]=~/files_tar_bz2
[xz]=~/files_tar_xz
)

# Cria os diretórios
mkdir -p ${DIRS[@]} 2>/dev/null

# Pega os arquivos e determina o comando correto para a extração para cada tipo de arquivo
for file; do
case "$file" in
*.tar.gz) RUN="tar -C ${DIRS[gz]} -zxf $file" ;;
*.tar.bz2) RUN="tar -C ${DIRS[bz2]} -jxf $file";;
*.tar.xz) RUN="tar -C ${DIRS[xz]} -xf $file" ;;
*) continue;;
esac

# Extrai o arquivo para a pasta de destino adequada, ou imprime um erro e continua para o próximo arquivo
echo "[RUN] : $file ..."
eval $RUN 2>/dev/null || echo "[ERR] : $file" >&2
done


Usos:
script arquivo1.tar.bz2 arquivo2.tar.bz2 arquivo3.tar.xz arquivo4.tar.gz arquivo5.tar.gz ... 

script /pasta/com/dezenas/de/arquivos/em/bz2/gz/xz/* 


--
Linux Counter: #596371


Não deu certo aqui... seu código me deu a seguinte saida:

Use: descompactador.bash <file.tar.gz|file.tar.bz2|file.tar.xz> ... 



10. Re: Como descompactar varios arquivos? [RESOLVIDO]

Bruno De Carvalho Santos
bruno5646

(usa Debian)

Enviado em 20/02/2017 - 14:10h

Mauriciodez escreveu:

bruno5646 escreveu:

Tenho em meu computador varios arquivos compactados que eu preciso descompactar, eles estão no formato .tar.gz, .tar.xz, .tar.bz2... Existe um comando no qual posso descompactar todos os arquivos de uma vez só? sendo que cada arquivo fique em uma pasta separada
Tipo...
Descompactar todos os arquivos .tar.xz
depois descompactar todos os arquivos .tar.bz2 e por ai vai... pois descompactar um por um vai ser muito trabalhoso kk


tenta isso aí

#!/bin/sh
QTD=$(find $1 -iname "*.tar.gz" | wc -l)
i="1"
while [ $i -le $QTD ];do
ArquivoCompleto=$(ls *.tar.gz | head -$i | tail -1)
tar -vzxf "$ArquivoCompleto"
i=$(($i+1))
done

QTD=$(find $1 -iname "*.tar.bz2" | wc -l)
j="1"
while [ $j -le $QTD ];do
ArquivoCompleto=$(ls *.tar.bz2 | head -$j | tail -1)
tar -jxvf "$ArquivoCompleto"
j=$(($j+1))

done

QTD=$(find $1 -iname "*.tar.xz" | wc -l)
j="1"
while [ $j -le $QTD ];do
ArquivoCompleto=$(ls *.tar.xz | head -$j | tail -1)
tar -Jxf "$ArquivoCompleto"
j=$(($j+1))

done


NOTA: Adaptado desse aqui >>> https://www.vivaolinux.com.br/script/Descompactar-arquivos-RAR-e-ZIP-em-lote
_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


Descompactou os 64 dos 128 arquivos que tenho e depois me deu a seguinte saida:

bzip2: (stdin) is not a bzip2 file.
tar: Child returned status 2
tar: Error is not recoverable: exiting now



11. Re: Como descompactar varios arquivos? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/02/2017 - 16:52h

Não deu certo aqui... seu código me deu a seguinte saida:

Use: descompactador.bash <file.tar.gz|file.tar.bz2|file.tar.xz> ... 


Leu aqui?

Usos:
script arquivo1.tar.bz2 arquivo2.tar.bz2 arquivo3.tar.xz arquivo4.tar.gz arquivo5.tar.gz ...
script /pasta/com/dezenas/de/arquivos/em/bz2/gz/xz/*

--
Microsoft Windows é como ar condicionado
Pára de funcionar quando você abre uma janela.

Linux Counter: #596371


12. Re: Como descompactar varios arquivos? [RESOLVIDO]

Bruno De Carvalho Santos
bruno5646

(usa Debian)

Enviado em 20/02/2017 - 19:32h

ru4n escreveu:

Não deu certo aqui... seu código me deu a seguinte saida:

Use: descompactador.bash <file.tar.gz|file.tar.bz2|file.tar.xz> ... 


Leu aqui?

Usos:
script arquivo1.tar.bz2 arquivo2.tar.bz2 arquivo3.tar.xz arquivo4.tar.gz arquivo5.tar.gz ...
script /pasta/com/dezenas/de/arquivos/em/bz2/gz/xz/*

--
Microsoft Windows é como ar condicionado
Pára de funcionar quando você abre uma janela.

Linux Counter: #596371


Li sim manin, porem no entendi muito bem o que voce quiz dizer nessa parte kkk



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts