Comment décompresser des fichiers via une connexion FTP?

19

Je me suis connecté à mon serveur distant via FTP et j'ai obtenu une liste de répertoires. J'ai quelques fichiers zip dans la liste.

Est-il possible de décompresser le fichier (Ex: test.zip)?. Si oui, quelle est la commande?

Hearaman
la source
après avoir décompressé l'installation, la commande est décompressez test.zip
...through ubuntu terminal...Juste pour le plaisir, ce n'est pas une option de connexion, c'est une application. Vous êtes-vous connecté via SSH, SFTP, FTP ou un autre moyen?
Bobby
Ceci est une connexion ftp
Hearaman

Réponses:

15

Il n'est pas possible de décompresser des fichiers via une connexion FTP. FTP signifie "File Transfer Protocol", qui a été conçu uniquement pour transférer et gérer en partie les fichiers sur l'extrémité distante, mais pas pour exécuter des commandes. Pour décompresser une archive, vous devez exécuter un programme comme tar, bzip2 ou similaire, mais ce n'est pas possible via une connexion FTP.

Vous avez besoin d'une autre session qui vous permet d'exécuter des commandes, comme SSH. Ou vous décompressez l'archive sur votre machine et transférez le contenu via FTP, ce qui sera considérablement plus lent si vous avez un grand nombre de petits fichiers en raison de la surcharge de FTP.

Policier
la source
existe-t-il des logiciels (linux) pour décompresser mes fichiers.
Hearaman
@Hearaman la commande unzip.
Kruug
16

Réponse un peu hors contexte mais fonctionne sûrement. Si vous exécutez un php Apache + sur ce répertoire ftp, téléchargez votre fichier zip dans ce dossier et créez extractor.php:

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

puis appuyez sur url par exemple: http://example.com/extractor.phpbingo php va extraire ce zip pour vous.

Touqeer Shafi
la source
script très utile, vous pouvez utiliser getcwd () pour ce dossier aka unix pwd dans le script
Stepo
3

Vous pouvez le faire si vous montez une ressource ftp en utilisant curlftpfs:

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

ensuite

unzip /path/to/mount/test.zip
jet
la source
2
Si cela ne vous sauvera rien du transfert, car le processus de décompression sera effectué par votre ordinateur et non sur le serveur, ce qui devrait être la manière optimisée de le faire.
NetVicious
2

Vous pouvez utiliser décompresser après avoir exécuté sudo apt-get install unzip.


la source
J'ai installé le package de décompression en utilisant sudo apt-get install unzip. Mais cela me donne une commande invalide
Vous pouvez l'utiliser comme "décompressez filename.zip -d / destination"
2

Votre objectif est-il de le décompresser sur le serveur externe , ou souhaitez-vous extraire le contenu de l'archive sur votre propre ordinateur ?

Le premier cas n'est pas résolu par FTP, mais par SSH ou des techniques similaires comme décrit dans d'autres réponses.

Si vous voulez simplement obtenir le contenu décompressé "directement" sur votre propre ordinateur sans d'abord transférer explicitement les fichiers, puis décompresser, vous pouvez par exemple monter le site FTP en tant que dossier et le décompresser en tant que fichier zip normal à un emplacement sur votre site local ordinateur. Cette volonté dans la pratique flux le contenu du fichier directement au programme Décompressez, de sorte que vous techniquement ne transférer le fichier entier, mais seulement dans son état compressé (probablement le trafic d' économie) et le contenu apparaîtra directement sur votre ordinateur local sans l'étape intermédiaire explicite.

Je ne sais pas comment le format de fichier zip est spécifié concernant simplement la décompression d'une partie d'un fichier zip; si vous devez néanmoins transférer tout le fichier ou seulement la partie compressée correspondant à ce fichier. Je ne vois pas de vraies raisons techniques pour lesquelles il ne serait pas possible de faire ce type de transfert sélectif (le protocole FTP ne permet que le transfert de fichiers partiels pour permettre la reprise).

Daniel Andersson
la source
0

Pour autant que je sache, certains serveurs FTP sont configurés pour décompresser automatiquement les fichiers lors du téléchargement. Par exemple, le serveur répertorie un fichier nommé test.txt.gz, avec votre client ftp que vous pouvez taper get test.txt, le serveur envoie ensuite le fichier via décompresser.

Voici la réponse qui peut être lue juste avant le début du téléchargement: 150 Opening ASCII mode data connection for /usr/bin/gzip.

Kay
la source
-1

vous pouvez utiliser la commande tar

tar -xfz test.zip
Sreejith B Naick
la source
4
Pour se souvenir des lettres: eXtract Zee Files
Canadian Luke REINSTATE MONICA
une commande invalide arrive dans ma console.
Hearaman
avec -xzfau lieu de -xfz?
HaydnWVN
(Nécessite la permission root) install tar par sudo apt-get install tar
Sreejith B Naick
1
Cette commande fonctionne sur le terminal local, mais ne peut PAS être exécutée sur une connexion FTP (même lorsque vous utilisez la sitecommande FTP)
JonathanDavidArndt