我已经通过FTP连接到远程服务器,并且得到了目录列表。我在列表中没有几个zip文件。
是否可以解压缩文件(例如:test.zip)?如果是,命令是什么?
...through ubuntu terminal...
仅出于此目的,这不是连接选项,而是应用程序。您是否通过SSH,SFTP,FTP或其他某种方式进行连接?
我已经通过FTP连接到远程服务器,并且得到了目录列表。我在列表中没有几个zip文件。
是否可以解压缩文件(例如:test.zip)?如果是,命令是什么?
...through ubuntu terminal...
仅出于此目的,这不是连接选项,而是应用程序。您是否通过SSH,SFTP,FTP或其他某种方式进行连接?
Answers:
无法通过FTP连接解压缩文件。FTP代表“文件传输协议”,该协议仅设计用于在远程端传输和部分管理文件,而不能执行命令。要解压缩档案,您必须执行tar,bzip2或类似程序,但无法通过FTP连接进行。
您需要另一个会话,该会话允许您执行命令,例如SSH。或者,您可以将压缩文件解压缩到计算机上,然后通过FTP传输内容,如果由于FTP的开销而拥有大量小文件,这将相当慢。
unzip
。
几乎没有上下文答案,但肯定可以。如果您在该ftp目录上运行的是Apache + php,则将zip文件上传到该文件夹中并创建extractor.php
:
$zip = new ZipArchive;
if ($zip->open('my_zip.zip') === TRUE) {
$zip->extractTo('/path/to/my/zip');
$zip->close();
echo 'ok';
}
然后点击网址,例如:http://example.com/extractor.php
bingo php将为您提取该zip。
如果使用curlftpfs
以下方式挂载ftp资源,则可以执行此操作:
curlftpfs ftp://ftp.server.org/ /path/to/mountpoint
然后
unzip /path/to/mount/test.zip
http://linux.about.com/od/commands/a/blcmdl1_unzipx.htm
简单案例-解压缩test.zip
您的目标是将其解压缩到外部服务器上,还是要将存档内容拉到您自己的计算机上?
第一种情况不能通过FTP解决,而可以通过SSH或其他答案中描述的类似技术解决。
如果您只是想直接将解压缩后的内容“直接”获取到自己的计算机上,而无需先显式传输文件然后解压缩,则可以例如将FTP站点挂载为文件夹,然后将其作为常规zip文件解压缩到本地计算机上的某个位置。电脑。实际上,这会将文件内容直接流式传输到解压缩程序,因此从技术上讲,您确实要传输整个文件,但仅在其压缩状态下(大概可以节省流量),并且内容将直接显示在本地计算机上,而无需进行明确的中间步骤。
我不知道关于仅解压缩zip文件的一部分的zip文件格式如何指定;如果您仍然需要传输整个文件,或者仅传输与该文件相对应的压缩部分。对于为何无法进行这种选择性传输,我没有任何真正的技术原因(FTP协议仅允许传输部分文件以启用恢复)。
您可以使用tar命令
tar -xfz test.zip
-xzf
代替-xfz
?
site
FTP命令也是如此)