¿Cómo descomprimir archivos mediante una conexión FTP?

¿Cómo descomprimir archivos mediante una conexión FTP?

Me conecté a mi servidor remoto a través de FTP y obtuve una lista de directorio. Tengo algunos archivos zip en la lista.

¿Es posible descomprimir el archivo (Ej: test.zip)?. En caso afirmativo, ¿cuál es el comando?

Respuesta1

No es posible descomprimir archivos a través de una conexión FTP. FTP significa "Protocolo de transferencia de archivos", que solo fue diseñado para transferir y administrar parcialmente archivos en el extremo remoto, pero no para ejecutar comandos. Para descomprimir un archivo tendrías que ejecutar un programa como tar, bzip2 o similar, pero eso no es posible a través de una conexión FTP.

Necesita otra sesión que le permita ejecutar comandos, como SSH. O descomprime el archivo en tu máquina y transfiere el contenido a través de FTP, lo que será considerablemente más lento si tienes una gran cantidad de archivos pequeños debido a la sobrecarga de FTP.

Respuesta2

Respuesta un poco fuera de contexto pero seguramente funciona. Si está ejecutando Apache + php en ese directorio ftp, cargue su archivo zip en esa carpeta y cree extractor.php:

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

y luego presione URL, por ejemplo: http://example.com/extractor.phpbingo php extraerá ese zip por usted.

Respuesta3

Puedes hacerlo si montas el recurso ftp usando curlftpfs:

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

entonces

unzip /path/to/mount/test.zip

Respuesta4

¿Tu objetivo es descomprimirlo?en el servidor externo, o desea extraer el contenido del archivoa tu propia computadora?

El primer caso no se resuelve con FTP, sino con SSH o técnicas similares como se describe en otras respuestas.

Si sólo desea obtener el contenido descomprimido "directamente" en su propia computadora sin primero transferir explícitamente los archivos y luego descomprimirlos, puede, por ejemplo, montar el sitio FTP como una carpeta y descomprimirlo como un archivo zip normal en una ubicación de su computadora local. computadora. Esta voluntaden la prácticatransmitir el contenido del archivo directamente al programa de descompresión, por lo que técnicamentehacertransfiera el archivo completo, pero solo en su estado comprimido (presumiblemente ahorrando tráfico) y el contenido aparecerá directamente en su computadora local sin el paso intermedio explícito.

No sé cómo se especifica el formato del archivo zip con respecto a simplemente descomprimir una parte de un archivo zip; si necesita transferir elenteroarchivo sin embargo o sólo la parte comprimida correspondiente a ese archivo. No veo ninguna razón técnica real por la que no sería posible realizar este tipo de transferencia selectiva (el protocolo FTP sólo permite transferir archivos parciales para permitir la reanudación).

información relacionada