Как распаковать файлы через FTP-соединение?

Как распаковать файлы через FTP-соединение?

Я подключился к своему удаленному серверу через FTP и получил список каталогов. У меня в списке несколько zip-файлов.

Можно ли распаковать файл (например, test.zip)? Если да, то какая команда?

решение1

Невозможно распаковать файлы через FTP-соединение. FTP означает "File Transfer Protocol", который был разработан только для передачи и частичного управления файлами на удаленном конце, но не для выполнения команд. Чтобы распаковать архив, вам придется запустить программу типа tar, bzip2 или подобную, но это невозможно через FTP-соединение.

Вам нужна другая сессия, которая позволяет вам выполнять команды, например SSH. Или вы распаковываете архив на своей машине и передаете содержимое через FTP, что будет значительно медленнее, если у вас большое количество мелких файлов из-за накладных расходов FTP.

решение2

Немного вырванный из контекста ответ, но наверняка работает. Если вы используете Apache + php в этом ftp-каталоге, то загрузите свой zip-файл в эту папку и создайте extractor.php:

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

а затем нажмите URL, например: http://example.com/extractor.phpbingo php извлечет этот zip-архив для вас.

решение3

Это можно сделать, если смонтировать FTP-ресурс с помощью curlftpfs:

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

затем

unzip /path/to/mount/test.zip

решение4

Ваша цель — распаковать его?на внешнем сервере, или вы хотите извлечь содержимое архивана свой компьютер?

Первый случай решается не с помощью FTP, а с помощью SSH или аналогичных методов, описанных в других ответах.

Если вы просто хотите получить разархивированное содержимое «напрямую» на свой компьютер без предварительного явного переноса файлов и последующей разархивации, вы можете, например, смонтировать FTP-сайт как папку и разархивировать его как обычный zip-файл в место на вашем локальном компьютере. Это позволитна практикеПередавайте содержимое файла непосредственно в программу распаковки, так что технически выделатьперенесите весь файл, но только в заархивированном виде (предположительно, для экономии трафика), и его содержимое появится непосредственно на вашем локальном компьютере без явного промежуточного шага.

Я не знаю, как формат zip-файла определяется относительно простого разархивирования части zip-файла; если вам нужно перенестивесьфайл тем не менее или только сжатую часть, соответствующую этому файлу. Я не вижу никаких реальных технических причин, по которым было бы невозможно сделать такой выборочный перенос (протокол FTP позволяет передавать только частичные файлы для возможности возобновления).

Связанный контент