¿Cómo descomprimir archivos a través de una conexión FTP?

19

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

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

Hearaman
fuente
después de descomprimir la instalación, el comando es descomprimir test.zip
...through ubuntu terminal...Solo por eso, esa no es una opción de conexión, es una aplicación. ¿Se conectó a través de SSH, SFTP, FTP o algún otro medio?
Bobby
Esta es la conexión ftp
Hearaman

Respuestas:

15

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ía 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 desempaquete el archivo en su máquina y transfiera el contenido a través de FTP, que será considerablemente más lento si tiene una gran cantidad de archivos pequeños debido a la sobrecarga de FTP.

Poli
fuente
¿Hay algún software (Linux) para descomprimir mis archivos?
Hearaman
@Hearaman el comando unzip.
Kruug
16

Respuesta un poco fuera de contexto, pero seguramente funciona. Si está ejecutando un 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.

Touqeer Shafi
fuente
script muy útil, puede usar getcwd () para esta carpeta, también conocida como unix pwd en el script
Stepo
3

Puede hacerlo si monta el recurso ftp usando curlftpfs:

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

luego

unzip /path/to/mount/test.zip
chorro
fuente
2
Si no le ahorrará nada de la transferencia, porque el proceso de descompresión será realizado por su computadora y no en el servidor, que debería ser la forma optimizada de hacerlo.
NetVicious
2

Puede usar descomprimir después de ejecutar sudo apt-get install unzip.


fuente
He instalado el paquete descomprimir usando sudo apt-get install unzip. Pero me está dando un comando no válido
Puede usarlo como "descomprimir filename.zip -d / destination"
2

¿Su objetivo es descomprimirlo en el servidor externo o desea extraer el contenido del archivo en su propia computadora ?

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

Si solo desea obtener el contenido descomprimido "directamente" en su propia computadora sin transferir primero 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 en su local computadora. Esta voluntad en la práctica corriente el contenido del archivo directamente en el programa de descompresión, por lo que técnicamente no transferir el archivo completo, pero sólo en su estado comprimido (presumiblemente ahorro de tráfico) y el contenido aparecerá directamente en el ordenador local, sin el paso intermedio explícita.

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

Daniel Andersson
fuente
0

Hasta donde yo sé, algunos servidores FTP están configurados para descomprimir automáticamente los archivos al descargarlos. Por ejemplo, el servidor enumera un archivo llamado test.txt.gz, con su cliente ftp puede escribir get test.txt, el servidor luego envía el archivo a través de descomprimir.

Esta es la respuesta que se puede leer justo antes de que comience la descarga: 150 Opening ASCII mode data connection for /usr/bin/gzip.

Kay
fuente
-1

puedes usar el comando tar

tar -xfz test.zip
Sreejith B Naick
fuente
44
Para recordar las letras: eXtract Zee Files
Canadian Luke REINSTATE MONICA
Un comando no válido está llegando a mi consola.
Hearaman
con en -xzflugar de -xfz?
HaydnWVN
(Requiere permiso de root) instalar tar por sudo apt-get install tar
Sreejith B Naick
1
Este comando funciona en la terminal local, pero NO se puede ejecutar a través de una conexión FTP (incluso cuando se usa el sitecomando FTP)
JonathanDavidArndt