2010-03-18 62 views
28

我正在编写一个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文件,但它包含了完整的/var/www/oraviewer/rgn_download/download/目录,到达fcst_20100318_0319/目录之前。

我可能只是从zip命令中丢失了一个标记,或者是一些小的东西,但是如何获取它以使用fcst_20100318_0319/作为根目录?

回答

35

我不认为拉链有一个标志来做到这一点。我认为唯一的办法是这样的:

cd /var/www/oraviewer/rgn_download/download/ && \ 
    zip -r fcst_20100318_0319.zip fcst_20100318_0319 

(反斜杠仅仅是为了清楚起见,您可以将其删除,并把所有东西都在同一行)

由于PHP在子shell执行命令,它不会改变你的当前目录。

+0

工作非常好,谢谢。 – Tarka 2010-03-19 14:20:05

+0

谢谢JayM。很有帮助。 – 2014-12-24 18:55:27

-1
cd /home/public_html/site/upload/ && zip -r sub_upload.zip sub_upload/ 
+3

这与接受的答案完全相同吗?没有解释,这不是很有用...... – 2012-10-20 00:18:42

2

我也把它用这个命令

EXEC工作( 'CD'。$ _ SERVER [ 'DOCUMENT_ROOT']。 '& &拉链-r com.zip “./”') ;

+0

正是我需要的。 – 2016-10-27 15:47:04