Existem outras opções para descompactar um arquivo no Ubuntu além de "descompactar"? [fechadas]


11

Meu sysadmin está inacessível no momento e eu tenho um arquivo compactado no servidor que gostaria de descompactar ... no entanto, atualmente não temos o zip e o descompactador instalados, e não tenho acesso root para instalá-los. ..

Estou totalmente sem opções? Existem outras coisas que podem descompactar esse arquivo?


O tar não está instalado? tar -x
Spuder

apenas tentei tar -x file.zip e parece estar fazendo alguma coisa ...
johnnietheblack

@spuder você deve deixar uma resposta em caso isso funciona, e eu vou upvote ya
johnnietheblack

Respostas:


10

Eu não tentei isso, mas há um zipfilemódulo na biblioteca padrão do Python desde a versão 1.6, e desde a versão 2.6 teve um extractallmétodo

Você deve ser capaz de fazer algo como:

  1. Crie um arquivo com o seguinte conteúdo (editando-o para se adequar ao seu caso de uso).
  2. Salve o arquivo como "unzipfile.py"
  3. Execute com python unzipfile.py

E vai extrair test.zippara /home/user/directory.

import zipfile

with zipfile.ZipFile('test.zip', "r") as z:
  z.extractall("/home/user/directory")

Fonte: https://stackoverflow.com/a/9432315/167299

Como alternativa, o BusyBox contém um "módulo" descompactado e, se você puder fazer o download e executar o BusyBox vinculado estaticamente, poderá usá-lo para descompactar as coisas.


Eu tentei a primeira parte deste e tem: A 'importação' programa podem ser encontrados nos seguintes pacotes: * imagemagick * GraphicsMagick-imagemagick compat - btw ... eu não downvote você
johnnietheblack

Oh. Você sabe que precisa executá-lo no Python?
Tom O'Connor

1
UAU. parece que funcionou .... Eu tropecei com sucesso no modo interativo!
johnnietheblack

2
Bem-vindo ao Python. É incrivel.
Tom O'Connor

2
Agora você pode apenas chamar o módulo diretamente da linha de comando python -m zipfile -e monty.zip target-dir/(veja docs.python.org/2/library/zipfile.html#command-line-interface )
Peter Gibson

11

Se você javainstalou, o jarcomando pode descompactar um arquivo compactado:

jar xvf file.zip 

Observe que você pode instalar o java sem acesso root: http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html


1
Hoje eu aprendi.
Tom O'Connor

O programa 'jar' pode ser encontrado nos seguintes pacotes: * default-jdk * fastjar * gcj-4.6-jdk * openjdk-6-jdk * gcj-4.5-jdk * openjdk-7-jdk Peça ao administrador para instalar um dos seguintes -los :(
johnnietheblack

1
Veja minha atualização de resposta.
Jlliagre

Estou um pouco cansado de instalar qualquer coisa no servidor, por medo da ira do meu administrador de sistemas, mas com certeza vou tentar isso, se necessário.
precisa saber é o seguinte

2

BSD / Mac OSX

O utilitário tar que acompanha os derivados Mac e BSD suporta a extração de arquivos zip do comando tar

tar -xvf foo.zip

tar --version
bsdtar 2.8.3 - libarchive 2.8.3

Debian / RHEL

O arquivo tar fornecido com o Ubuntu e outros não suporta a extração de arquivos zip. A melhor opção será scp o arquivo para uma máquina com o zip instalado.

tar -xvf foo.zip
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

Teste de fumaça

echo "the quick brown fox jumped over the lazy dog" > bar.txt
zip -r bar.zip bar.txt
rm bar.txt
tar -xvf bar.txt
cat bar.txt
the quick brown fox jumped over the lazy dog

Atualizar

Reescreva a resposta para esclarecer que o tar -xvf funciona apenas em sistemas operacionais bsd. Embora seja uma boa informação, afinal não funcionará nesse cenário.


o que o -zxvf faz?
precisa saber é o seguinte

Quando tento isso, obtenho tar: Isso não se parece com um arquivo tar: saltando para o próximo cabeçalho ... isso significa que falhou ou ainda está em andamento?
johnnietheblack

tarcapacidade de processar arquivos zip seria uma extensão que o Ubuntu tar (ou seja, GNU tar) não parece fornecer. -zé para arquivos compactados em gzip, não compactados (a menos que seja uma extensão muito recente).
Jlliagre

isso significa que se eu fizer upload de um gzip, ele funcionaria?
precisa saber é o seguinte

Ele vai, mas isso não é a sua pergunta ;-)
jlliagre

2

Não acredito que haja outras maneiras de descompactar o arquivo em um sistema sem unzip, mas você pode enviar o arquivo para outro sistema linux (com descompactação instalado ou acesso root disponível), descompactar o arquivo e, se necessário, enviar o arquivo descompactado arquivo de volta ao servidor original.

O comando para enviar um arquivo de um servidor para outro é scp. A sintaxe para enviar o arquivo é:

scp <filename> <username>@<otherhostname>:<portnumber><fullpathtolocation>
e.g.: scp file.zip  user@server.example.com:2222/home/user/ 

Espero que isto ajude!


0

Copie o arquivo para outra máquina, descompacte e copie novamente.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.