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?


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.


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.


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

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.


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

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).


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.


-1

Sie können den Befehl tar verwenden

tar -xfz test.zip

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.