Я подключился к удаленному серверу через FTP и получил список каталогов. У меня есть несколько zip-файлов в списке.
Можно ли распаковать файл (например, test.zip)? Если да, то какая команда?
Я подключился к удаленному серверу через FTP и получил список каталогов. У меня есть несколько zip-файлов в списке.
Можно ли распаковать файл (например, test.zip)? Если да, то какая команда?
Немного вне контекста ответа, но, безусловно, работает. Если вы используете 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.php
bingo php извлечет этот zip для вас.
Разархивировать файлы через FTP-соединение невозможно. FTP означает "Протокол передачи файлов", который был разработан только для передачи и частичного управления файлами на удаленном конце, но не для выполнения команд. Чтобы распаковать архив, вам нужно выполнить программу наподобие tar, bzip2 или аналогичную, но это невозможно через FTP-соединение.
Вам нужен еще один сеанс, который позволяет вам выполнять команды, такие как SSH. Или вы распаковываете архив на свою машину и переносите содержимое по FTP, что будет значительно медленнее, если у вас большое количество небольших файлов из-за издержек FTP.
Вы можете сделать это, если вы смонтируете ресурс ftp с помощью curlftpfs
:
curlftpfs ftp://ftp.server.org/ /path/to/mountpoint
затем
unzip /path/to/mount/test.zip
Вы можете использовать unzip после запуска sudo apt-get install unzip.
http://linux.about.com/od/commands/a/blcmdl1_unzipx.htm
простой случай - распакуйте тест.zip
Ваша цель - разархивировать его на внешний сервер или вы хотите перенести содержимое архива на свой компьютер?
Первый случай не решается с помощью FTP, но с помощью SSH или аналогичных методов, как описано в других ответах.
Если вы просто хотите получить разархивированное содержимое "напрямую" на свой компьютер без явной передачи файлов, а затем разархивировать, вы можете, например, смонтировать FTP-сайт как папку и разархивировать его как обычный zip-файл в папку на вашем локальном компьютере. компьютер. На практике это приведет к потоковой передаче содержимого файла непосредственно в разархивированную программу, так что технически вы действительно передаете весь файл, но только в сжатом состоянии (предположительно экономя трафик), и содержимое будет отображаться непосредственно на вашем локальном компьютере без явного промежуточного этапа.
Я не знаю, как указан формат zip-файла, касающийся разархивирования части zip-файла; если вам необходимо передать весь файл или только сжатую часть, соответствующую этому файлу. Я не вижу каких-либо реальных технических причин, почему было бы невозможно сделать этот выборочный перенос (протокол FTP позволяет передавать только частичные файлы для возобновления).
Насколько я знаю, некоторые FTP-серверы настроены на автоматическое распаковывание файлов при загрузке. Например, сервер перечисляет файл с именем test.txt.gz
, с вашим ftp-клиентом вы можете набрать get test.txt
, а затем сервер отправляет файл через unzip.
Это ответ, который можно прочитать прямо перед началом загрузки: 150 Opening ASCII mode data connection for /usr/bin/gzip.
вы можете использовать команду tar
tar -xfz test.zip