Jak rozpakować pliki przez połączenie FTP?

19

Połączyłem się ze swoim zdalnym serwerem przez FTP i dostałem listę katalogów. Mam kilka plików zip na liście.

Czy można rozpakować plik (np. Test.zip) ?. Jeśli tak, jakie jest polecenie?

Słuchacz
źródło
po instalacji rozpakuj, polecenie to rozpakuj test.zip
...through ubuntu terminal...Po prostu nie jest to opcja połączenia, to aplikacja. Czy łączyłeś się przez SSH, SFTP, FTP lub w inny sposób?
Bobby
To połączenie ftp
słuchacz

Odpowiedzi:

15

Rozpakowanie plików przez połączenie FTP nie jest możliwe. FTP oznacza „File Transfer Protocol”, który został zaprojektowany wyłącznie do przesyłania plików i zdalnego zarządzania nimi, ale nie do wykonywania poleceń. Aby rozpakować archiwum, musisz uruchomić program taki jak tar, bzip2 lub podobny, ale nie jest to możliwe przez połączenie FTP.

Potrzebujesz kolejnej sesji, która pozwala wykonywać polecenia, takie jak SSH. Lub rozpakowujesz archiwum na swoim komputerze i przesyłasz zawartość przez FTP, co będzie znacznie wolniejsze, jeśli masz dużą liczbę małych plików z powodu obciążenia FTP.

Konstabl
źródło
czy jest jakieś oprogramowanie (linux) do rozpakowania moich plików.
Hearaman
@ Słuchaj polecenia unzip.
Kruug
16

Trochę poza kontekstową odpowiedzią, ale na pewno działa. Jeśli korzystasz z Apache + php w tym katalogu ftp, prześlij plik zip do tego folderu i utwórz extractor.php:

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

a następnie naciśnij adres URL np .: http://example.com/extractor.phpbingo php wyodrębni ten plik zip.

Touqeer Shafi
źródło
bardzo przydatny skrypt, możesz użyć getcwd () dla tego folderu aka unix pwd w skrypcie
Stepo
3

Możesz to zrobić, jeśli montujesz zasób ftp przy użyciu curlftpfs:

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

następnie

unzip /path/to/mount/test.zip
strumień
źródło
2
Jeśli nie zaoszczędzi ci nic z transferu, ponieważ proces rozpakowywania zostanie wykonany przez komputer, a nie na serwerze, co powinno być zoptymalizowanym sposobem na zrobienie tego.
NetVicious,
2

Możesz użyć unzip po uruchomieniu sudo apt-get install unzip.


źródło
zainstalowałem pakiet rozpakujący za pomocą sudo apt-get install unzip. Ale to daje mi nieprawidłowe polecenie
Możesz go używać jak „rozpakuj
2

Czy Twoim celem jest rozpakowanie go na serwerze zewnętrznym , czy chcesz pobrać zawartość archiwum na własny komputer ?

Pierwszy przypadek nie został rozwiązany przez FTP, ale przez SSH lub podobne techniki opisane w innych odpowiedziach.

Jeśli chcesz po prostu pobrać rozpakowaną zawartość „bezpośrednio” na własny komputer bez uprzedniego jawnego przesłania plików, a następnie rozpakowania, możesz np. Zamontować witrynę FTP jako folder i rozpakować ją jako zwykły plik zip do lokalizacji na lokalnym komputerze komputer. Będzie to w praktyce strumieniowo zawartość pliku bezpośrednio do programu rozpakować, więc technicznie zrobić przenieść cały plik, ale tylko w stanie skompresowanym (przypuszczalnie oszczędność ruchu), a zawartość pojawi się bezpośrednio na komputerze lokalnym bez wyraźnej etapie pośrednim.

Nie wiem, jak określony jest format pliku zip dotyczący rozpakowywania części pliku zip; jeśli mimo to chcesz przesłać cały plik lub tylko skompresowaną część odpowiadającą temu plikowi. Nie widzę żadnych rzeczywistych technicznych powodów, dla których nie byłoby możliwe tego rodzaju selektywne przesyłanie (protokół FTP umożliwia przesyłanie tylko częściowych plików, aby umożliwić wznowienie).

Daniel Andersson
źródło
0

O ile wiem, niektóre serwery FTP są skonfigurowane do automatycznego rozpakowywania plików podczas pobierania. Na przykład serwer wyświetla plik o nazwie test.txt.gz, z którym można wpisać klienta ftp get test.txt, serwer następnie wysyła plik przez rozpakowanie.

Oto odpowiedź, którą można przeczytać tuż przed rozpoczęciem pobierania: 150 Opening ASCII mode data connection for /usr/bin/gzip.

Kay
źródło
-1

możesz użyć polecenia tar

tar -xfz test.zip
Sreejith B Naick
źródło
4
Aby zapamiętać litery: eXtract Zee Files
Canadian Luke REINSTATE MONICA
nieprawidłowe polecenie nadchodzi w mojej konsoli.
Hearaman
z -xzfzamiast -xfz?
HaydnWVN
(Wymaga uprawnień roota) zainstaluj tar przez sudo apt-get zainstaluj tar
Sreejith B Naick
1
To polecenie działa na lokalnym terminalu, ale NIE MOŻE być uruchamiane przez połączenie FTP (nawet gdy używasz sitepolecenia FTP)
JonathanDavidArndt