2010-03-18 94 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