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

77830
Hearaman

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

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

17
после разархивирования установите команду unzip test.zip 11 лет назад 0
`... через терминал Ubuntu ...` Просто ради этого, это не вариант подключения, это приложение. Вы подключались через SSH, SFTP, FTP или каким-либо другим способом? Bobby 11 лет назад 0
Это FTP соединение Hearaman 11 лет назад 0

8 ответов на вопрос

14
Bobby

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

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

Есть ли программное обеспечение (Linux), чтобы распаковать мои файлы. Hearaman 11 лет назад 0
@Hearaman команда `распаковать`. Kruug 10 лет назад 0
12
Touqeer Shafi

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

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

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

затем

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

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

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

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

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

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

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

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

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

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

0
Kay

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

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

-1
user1602914

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

tar -xfz test.zip 
Чтобы запомнить буквы: eXtract Zee Files Canadian Luke 11 лет назад 3
неверная команда поступает в мою консоль. Hearaman 11 лет назад 0
с `-xzf` вместо` -xfz`? HaydnWVN 11 лет назад 0
(Требуется разрешение root) установите tar с помощью sudo apt-get install tar user1602914 11 лет назад 0
попробуйте открыть ссылку ftp в Nautilus, щелкните правой кнопкой мыши по zip-файлу и проверьте, есть ли опция «извлечь здесь». user1602914 11 лет назад 0
Эта команда работает на локальном терминале, но НЕ может быть запущена через FTP-соединение (даже при использовании FTP-команды `site`) JonathanDavidArndt 6 лет назад 0

Похожие вопросы