使用特定目录作为根来压缩目录的命令

时间:2010-03-18 20:23:25

标签: linux command-line zip command

我正在编写一个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/作为根目录?

3 个答案:

答案 0 :(得分:40)

我认为zip没有标志可以做到这一点。我认为唯一的方法是:

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

(反斜杠只是为了清晰起见,你可以将其删除并将所有内容放在一行上。)

由于PHP在子shell中执行命令,因此不会更改当前目录。

答案 1 :(得分:3)

我也可以通过使用此命令

来实现它

exec('cd'。$ _ SERVER ['DOCUMENT_ROOT']。'&& zip -r com.zip“./"') ;

答案 2 :(得分:0)

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