【问题标题】:Command to zip a directory using a specific directory as the root使用特定目录作为根目录压缩目录的命令
【发布时间】:2011-01-29 05:01:34
【问题描述】:

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

【问题讨论】:

    标签: linux command-line zip command


    【解决方案1】:

    我不认为 zip 有这样做的标志。我认为唯一的方法是:

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

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

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

    【讨论】:

    • 谢谢JayM。很有帮助。
    【解决方案2】:

    我也用这个命令让它工作

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

    【讨论】:

    • 正是我需要的。
    【解决方案3】:
    cd /home/public_html/site/upload/ && zip -r sub_upload.zip sub_upload/
    

    【讨论】:

    • 这与接受的答案完全相同吗?没有解释,它不是很有用……
    • 这个正确方法 cd /home/public_html/site/upload/sub_upload && zip -r sub_upload.zip .
    猜你喜欢
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    相关资源
    最近更新 更多