Wie entpacke ich Dateien über eine FTP-Verbindung?

19

Ich habe eine Verbindung zu meinem Remote-Server über FTP hergestellt und eine Verzeichnisliste erhalten. Ich habe einige zip-Dateien in der Liste.

Ist es möglich, die Datei zu entpacken (Beispiel: test.zip)? Wenn ja, wie lautet der Befehl?

Hörmann
quelle
Nach der Installation von unzip lautet der Befehl unzip test.zip
...through ubuntu terminal...Das ist keine Verbindungsoption, sondern eine Anwendung. Haben Sie eine Verbindung über SSH, SFTP, FTP oder auf andere Weise hergestellt?
Bobby
Dies ist FTP-Verbindung
Hearaman

Antworten:

15

Es ist nicht möglich, Dateien über eine FTP-Verbindung zu entpacken. FTP steht für "File Transfer Protocol" (Dateiübertragungsprotokoll), das nur zum Übertragen und teilweisen Verwalten von Dateien auf der Remote-Seite, jedoch nicht zum Ausführen von Befehlen entwickelt wurde. Um ein Archiv zu entpacken, müssen Sie ein Programm wie tar, bzip2 oder ähnliches ausführen, aber das ist nicht über eine FTP-Verbindung möglich.

Sie benötigen eine weitere Sitzung, in der Sie Befehle wie SSH ausführen können. Oder Sie entpacken das Archiv auf Ihrem Computer und übertragen den Inhalt per FTP. Dies ist aufgrund des Overheads von FTP erheblich langsamer, wenn Sie eine große Anzahl kleiner Dateien haben.

Bobby
quelle
Gibt es irgendwelche Software (Linux), um meine Dateien zu entpacken?
Hearaman
@Hearaman den Befehl unzip.
Kruug
16

Etwas aus dem Zusammenhang geratene Antwort funktioniert aber sicher. Wenn Sie in diesem FTP-Verzeichnis Apache + PHP ausführen, laden Sie Ihre ZIP-Datei in diesen Ordner und erstellen Sie extractor.php:

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

und dann drücke url zB: http://example.com/extractor.phpbingo php wird diese zip für dich extrahieren.

Touqeer Shafi
quelle
sehr nützliches Skript, können Sie getcwd () für diesen Ordner aka Unix Pwd im Skript verwenden
Stepo
3

Sie können dies tun, wenn Sie eine FTP-Ressource bereitstellen, indem Sie Folgendes verwenden curlftpfs:

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

dann

unzip /path/to/mount/test.zip
Jet
quelle
2
Wenn Sie nichts von der Übertragung sparen, wird der Entpackungsvorgang von Ihrem Computer und nicht von dem Server ausgeführt, der die optimierte Methode sein sollte.
NetVicious
2

Sie können unzip verwenden, nachdem Sie sudo apt-get install unzip ausgeführt haben.


quelle
Ich habe das unzip-Paket mit sudo apt-get install unzip installiert. Aber es gibt mir einen ungültigen Befehl
Sie können es wie "unzip filename.zip -d / destination"
2

http://linux.about.com/od/commands/a/blcmdl1_unzipx.htm

einfacher Fall - entpacke test.zip

Sanath
quelle
Das war super einfach. Ich habe die Zip-Datei über FTP hochgeladen und dann mit SSH auf den Server zugegriffen, auf dem ich den einfachen Befehl unzip nameoffile ausgeführt habe. Vielen Dank.
FMZ
2

Ist Ihr Ziel, es auf dem externen Server zu entpacken , oder möchten Sie den Archivinhalt auf Ihren eigenen Computer ziehen ?

Der erste Fall wird nicht durch FTP gelöst, sondern durch SSH oder ähnliche Techniken, wie in anderen Antworten beschrieben.

Wenn Sie den entpackten Inhalt nur "direkt" auf Ihren eigenen Computer übertragen möchten, ohne die Dateien zuerst explizit zu übertragen und dann zu entpacken, können Sie z. B. die FTP-Site als Ordner bereitstellen und als normale Zip-Datei an einen Ort in Ihrer Nähe entpacken Computer. Dies wird in der Praxis streamen die Dateiinhalte direkt auf das Programm entpacken, so dass Sie technisch Sie die gesamte Datei übertragen, aber nur in seinem Reißverschluss Zustand (vermutlich Einsparung Verkehr) und der Inhalt wird direkt auf dem lokalen Computer ohne ausdrücklichen Zwischenschritt erscheinen.

Ich weiß nicht, wie das Zip-Dateiformat angegeben wird, wenn nur ein Teil einer Zip-Datei entpackt wird. Wenn Sie dennoch die gesamte Datei oder nur den dieser Datei entsprechenden komprimierten Teil übertragen müssen. Ich sehe keine wirklichen technischen Gründe, warum es nicht möglich wäre, diese Art der selektiven Übertragung durchzuführen (das FTP-Protokoll erlaubt nur die Übertragung von Teildateien, um die Wiederaufnahme zu ermöglichen).

Daniel Andersson
quelle
0

Soweit ich weiß, sind einige FTP-Server so eingerichtet, dass sie Dateien beim Herunterladen automatisch entpacken. Zum Beispiel listet der Server eine Datei mit dem Namen auf test.txt.gz. Mit Ihrem FTP-Client, den Sie get test.txteingeben können , sendet der Server die Datei dann durch Entpacken.

Dies ist die Antwort, die vor dem Download gelesen werden kann: 150 Opening ASCII mode data connection for /usr/bin/gzip.

Kay
quelle
-1

Sie können den Befehl tar verwenden

tar -xfz test.zip
Sreejith B Naick
quelle
4
Um sich an die Buchstaben zu erinnern: eXtract Zee Files
Kanadier Luke REINSTATE MONICA
In meiner Konsole kommt ein ungültiger Befehl.
Hearaman
mit -xzfstatt -xfz?
HaydnWVN
(Erfordert root-Rechte) install tar von sudo apt-get install tar
Sreejith B. Naick
1
Dieser Befehl funktioniert auf dem lokalen Terminal, kann jedoch NICHT über eine FTP-Verbindung ausgeführt werden (selbst wenn der siteFTP-Befehl verwendet wird)
JonathanDavidArndt