![](/img/trans.png)
[英]Specify Destination Directory for 'zip' Command Output (The Zip file that is Created)
[英]Command to zip a directory using a specific directory as the root
我正在编写一个 PHP 脚本,它将一系列生成的文件(使用wget
)下载到一个目录中,然后使用zip
命令进行压缩。
下载工作完美,压缩大部分工作。 我运行命令:
zip -r /var/www/oraviewer/rgn_download/download/fcst_20100318_0319.zip /var/www/oraviewer/rgn_download/download/fcst_20100318_0319
它会生成一个包含所有下载文件的 zip 文件,但在到达fcst_20100318_0319/
目录之前,它包含完整的/var/www/oraviewer/rgn_download/download/
目录。
我可能只是从 zip 命令中丢失了一个标志或一些小东西,但是我如何让它使用fcst_20100318_0319/
作为根目录?
我认为zip没有标志可以做到这一点。 我认为唯一的方法是:
cd /var/www/oraviewer/rgn_download/download/ && \
zip -r fcst_20100318_0319.zip fcst_20100318_0319
(反斜杠只是为了清晰起见,您可以删除它并将所有内容放在一行上。)
由于PHP在子shell中执行命令,因此它不会更改当前目录。
我也使用此命令使其工作
exec('cd'。$ _ SERVER ['DOCUMENT_ROOT']。'&& zip -r com.zip“./”');
在 zip 命令中使用 -j 或 --junk-paths 选项。
来自zip 手册页:
-j
--垃圾路径
只存储已保存文件的名称(垃圾路径),不存储目录名称。 默认情况下,zip 将存储完整路径(相对于当前目录)。
cd /home/public_html/site/upload/ && zip -r sub_upload.zip sub_upload/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.