2010-03-18 8 views
28

Estoy escribiendo un script PHP que descarga una serie de archivos generados (usando wget) en un directorio, y luego comprime y luego sube, usando el comando zip.Comando para comprimir un directorio utilizando un directorio específico como root

Las descargas funcionan a la perfección, y la comprimir trabaja principalmente. Funciono con el comando:

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

que produce un archivo zip con todos los archivos descargados, pero contiene los /var/www/oraviewer/rgn_download/download/ directorios completos, antes de llegar al directorio fcst_20100318_0319/.

Probablemente me falta una bandera, o algo pequeño, del comando zip, pero ¿cómo hago para usar fcst_20100318_0319/ como directorio raíz?

Respuesta

35

No creo postal tiene una bandera para hacer eso. Creo que la única manera es algo así como:

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

(. La barra invertida es sólo para mayor claridad, se puede quitar y poner todo en una línea)

A partir de PHP se ejecuta el comando en un subnivel, no cambiará tu directorio actual.

+0

Funcionó maravillosamente, gracias. – Tarka

+0

Gracias JayM. Muy útil. –

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

¿Es exactamente lo mismo que la respuesta aceptada? Sin explicaciones, no es muy útil ... –

2

He trabajado también consigue que mediante el uso de este comando

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

+0

Exactamente lo que necesitaba. –

Cuestiones relacionadas