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

发布于 2024-08-25 15:55:18 字数 493 浏览 5 评论 0原文

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

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

何以畏孤独 2024-09-01 15:55:18

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

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

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

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

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.

强辩 2024-09-01 15:55:18

使其正常工作

我还通过使用此命令exec('cd '.$_SERVER['DOCUMENT_ROOT'].' && zip -r com.zip "./"');

I have also get it worked by using this command

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

终遇你 2024-09-01 15:55:18

在 zip 命令中使用 -j 或 --junk-paths 选项。

zip 手册页

-j

--垃圾路径

仅存储已保存文件的名称(丢弃路径),并且不存储
目录名称。默认情况下,zip 将存储完整路径(相对路径)
到当前目录)。

Use the -j or --junk-paths option in your zip command.

From the zip man page:

-j

--junk-paths

Store just the name of a saved file (junk the path), and do not store
directory names. By default, zip will store the full path (relative
to the current directory).

优雅的叶子 2024-09-01 15:55:18
cd /home/public_html/site/upload/ && zip -r sub_upload.zip sub_upload/
cd /home/public_html/site/upload/ && zip -r sub_upload.zip sub_upload/
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文