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.