Command to zip a directory using a specific directory as the root

女生的网名这么多〃 提交于 2019-12-29 20:40:14

问题


I'm writing a PHP script that downloads a series of generated files (using wget) into a directory, and then zips then up, using the zip command.

The downloads work perfectly, and the zipping mostly works. I run the command:

zip -r /var/www/oraviewer/rgn_download/download/fcst_20100318_0319.zip /var/www/oraviewer/rgn_download/download/fcst_20100318_0319

which yields a zip file with all the downloaded files, but it contains the full /var/www/oraviewer/rgn_download/download/ directories, before reaching the fcst_20100318_0319/ directory.

I'm probably just missing a flag, or something small, from the zip command, but how do I get it to use fcst_20100318_0319/ as the root directory?


回答1:


I don't think zip has a flag to do that. I think the only way is something like:

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

(The backslash is just for clarity, you can remove it and put everything on one line.)

Since PHP is executing the command in a subshell, it won't change your current directory.




回答2:


I have also get it worked by using this command

exec('cd '.$_SERVER['DOCUMENT_ROOT'].' && zip -r com.zip "./"');




回答3:


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


来源:https://stackoverflow.com/questions/2473115/command-to-zip-a-directory-using-a-specific-directory-as-the-root

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!