Como descompactar arquivos via conexão FTP?

17

Liguei-me ao meu servidor remoto via FTP e obtive uma listagem de diretórios. Eu tenho alguns arquivos zip na lista.

É possível descompactar o arquivo (Ex: test.zip) ?. Se sim, qual é o comando?

    
por Hearaman 26.09.2012 / 08:42

8 respostas

14

Não é possível descompactar arquivos por uma conexão FTP. FTP significa "File Transfer Protocol", que foi projetado apenas para transferir e gerenciar parcialmente os arquivos no final remoto, mas não para executar comandos. Para descompactar um arquivo, você teria que executar um programa como tar, bzip2 ou similar, mas isso não é possível através de uma conexão FTP.

Você precisa de outra sessão que permita executar comandos, como o SSH. Ou você descompacta o arquivo na sua máquina e transfere o conteúdo via FTP, o que será consideravelmente mais lento se você tiver um grande número de arquivos pequenos devido à sobrecarga do FTP.

    
por 26.09.2012 / 09:38
12

Resposta pouco fora do contexto, mas certamente funciona. Se você estiver executando um Apache + php no diretório ftp, carregue o arquivo zip nessa pasta e crie extractor.php :

$zip = new ZipArchive;
if ($zip->open('my_zip.zip') === TRUE) {
    $zip->extractTo('/path/to/my/zip');
    $zip->close();
    echo 'ok';
}

e, em seguida, clique em url, por exemplo: http://example.com/extractor.php bingo php extrairá esse zip para você.

    
por 24.01.2016 / 08:11
3

Você pode fazer isso se montar o recurso ftp usando curlftpfs :

curlftpfs ftp://ftp.server.org/ /path/to/mountpoint

então

unzip /path/to/mount/test.zip
    
por 26.09.2012 / 13:24
2

Você pode usar o unzip depois de executar o sudo apt-get install unzip.

    
por 26.09.2012 / 08:44
2

link

caso simples - descompacte test.zip

    
por 26.09.2012 / 08:46
1

Seu objetivo é descompactá-lo no servidor externo ou você deseja transferir o conteúdo do arquivo para seu próprio computador ?

O primeiro caso não é resolvido pelo FTP, mas pelo SSH ou por técnicas semelhantes, como descrito em outras respostas.

Se você deseja apenas obter o conteúdo descompactado "diretamente" para seu próprio computador sem antes transferir os arquivos explicitamente e, em seguida, descompactar, você pode, por exemplo, Monte o site FTP como uma pasta e descompacte-o como um arquivo zip normal em um local no computador local. Isso irá na prática transmitir o conteúdo do arquivo diretamente para o programa descompactar, então você tecnicamente faz transferir todo o arquivo, mas apenas em seu estado zipado (presumivelmente economizando tráfego) e conteúdo aparecerá diretamente em seu computador local sem a etapa intermediária explícita.

Eu não sei como o formato do arquivo zip é especificado sobre apenas descompactar uma parte de um arquivo zip; se você precisar transferir o arquivo inteiro ou apenas a parte compactada correspondente a esse arquivo. Eu não vejo nenhuma razão técnica real de por que não seria possível fazer esse tipo de transferência seletiva (o protocolo FTP permite somente a transferência de arquivos parciais para permitir a retomada).

    
por 26.09.2012 / 12:17
0

Até onde eu sei, alguns servidores FTP são configurados para descompactar arquivos automaticamente no download. Por exemplo, o servidor lista um arquivo chamado test.txt.gz , com o seu cliente ftp você pode digitar get test.txt , o servidor envia o arquivo por meio de descompactação.

Esta é a resposta que pode ser lida imediatamente antes do download começar: 150 Opening ASCII mode data connection for /usr/bin/gzip.

    
por 26.06.2013 / 14:40
-1

você pode usar o comando tar

tar -xfz test.zip
    
por 26.09.2012 / 08:52