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

19

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

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

Hearaman
источник
после распаковки, команда распаковать test.zip
...through ubuntu terminal...Просто ради этого, это не вариант подключения, это приложение. Вы подключались через SSH, SFTP, FTP или каким-либо другим способом?
Бобби
Это соединение ftp
Hearaman

Ответы:

15

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

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

Бобби
источник
Есть ли программное обеспечение (Linux), чтобы распаковать мои файлы.
Hearaman
@Hearaman команда unzip.
Крууг
16

Немного вне контекста, ответ, но, безусловно, работает. Если вы используете 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 для вас.

Тукер Шафи
источник
очень полезный скрипт, вы можете использовать getcwd () для этой папки, также называемой unix pwd в скрипте
Stepo
3

Вы можете сделать это, если вы смонтируете ресурс ftp, используя curlftpfs:

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

тогда

unzip /path/to/mount/test.zip
реактивный самолет
источник
2
Если это не спасет вас от переноса, потому что процесс распаковки будет выполняться вашим компьютером, а не на сервере, который должен быть оптимизированным способом сделать это.
NetVicious,
2

Вы можете использовать unzip после запуска sudo apt-get install unzip.


источник
Я установил пакет распаковки с помощью sudo apt-get install unzip. Но это дает мне неверную команду
Вы можете использовать его как "unzip filename.zip -d / destination"
2

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

простой случай - распакуйте тест.zip

Sanath
источник
Это было супер легко. Я загрузил zip-файл через FTP, а затем использовал SSH для доступа к серверу, на котором я выполнил простую команду unzip nameoffile. Благодарю.
FMZ
2

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

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

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

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

Даниэль Андерссон
источник
0

Насколько я знаю, некоторые FTP-серверы настроены на автоматическое распаковывание файлов при загрузке. Например, сервер перечисляет файл с именем test.txt.gz, который вы можете набрать с помощью вашего ftp-клиента get test.txt, затем сервер отправляет файл через unzip.

Это ответ, который можно прочитать прямо перед началом загрузки: 150 Opening ASCII mode data connection for /usr/bin/gzip.

Кей
источник
-1

вы можете использовать команду tar

tar -xfz test.zip
Сриджит Б Нэйк
источник
4
Чтобы запомнить буквы: eXtract Zee Files
Канадский Люк ОБНОВЛЯЕТ МОНИКУ
неверная команда поступает в мою консоль.
Hearaman
с -xzfвместо -xfz?
HaydnWVN
(Требуется разрешение root) установите tar с помощью sudo apt-get install tar
Срижет B Naick
1
Эта команда работает на локальном терминале, но НЕ может быть запущена через FTP-соединение (даже при использовании команды siteFTP)
JonathanDavidArndt