2010-03-18 2 views
28

나는 을 사용하여 일련의 생성 된 파일을 디렉토리로 다운로드 한 다음 zip 명령을 사용하여 압축 한 PHP 스크립트를 작성하고 있습니다.특정 디렉토리를 루트로 사용하여 디렉토리를 압축하는 명령

다운로드가 완벽하게 작동하고 압축이 대부분 작동합니다. 나는 명령을 실행 : 모든 다운로드 파일이 zip 파일을 얻을 수

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

을,하지만 fcst_20100318_0319/ 디렉토리에 도달하기 전에, 전체 /var/www/oraviewer/rgn_download/download/ 디렉토리가 포함되어 있습니다.

나는 zip 명령에서 플래그 또는 작은 것을 누락했을 가능성이 있지만, 어떻게 fcst_20100318_0319/을 루트 디렉토리로 사용할 수 있습니까?

답변

35

나는 지퍼가 그렇게 할 플래그가 없다고 생각합니다. ,

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

(백 슬래시, 그냥 명확성을 위해 당신이 그것을 제거하고 한 줄에 모든 것을 넣을 수 있습니다.) PHP는 서브 쉘에서 명령을 실행하기 때문에

: 나는 유일한 방법은 무엇인가 생각 현재 디렉토리는 변경되지 않습니다.

+0

훌륭하게 일했습니다. 감사합니다. – Tarka

+0

고맙습니다 JayM. 매우 도움이됩니다. –

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

허용되는 답변과 정확히 일치합니까? 설명이 없으면 그다지 유용하지 않습니다 ... –

2

나는 또한이 명령을

간부 사용하여 흥분했다 ('CD를'. $ _ SERVER [ 'DOCUMENT_ROOT']. '& & 우편 -r com.zip "./"') ;

+0

정확히 내가 필요로하는 것. –