it-swarm.com.de

Befehl zum Zip eines Verzeichnisses mit einem bestimmten Verzeichnis als Stammverzeichnis

Ich schreibe ein PHP -Skript, das eine Reihe generierter Dateien (mit wget) in ein Verzeichnis herunterlädt und dann mit dem Befehl Zip zips hochfährt.

Die Downloads funktionieren einwandfrei und das Zippen funktioniert meistens. Ich führe den Befehl aus:

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

dies ergibt eine Zip-Datei mit allen heruntergeladenen Dateien, enthält jedoch die vollständigen /var/www/oraviewer/rgn_download/download/-Verzeichnisse, bevor das fcst_20100318_0319/-Verzeichnis erreicht wird.

Vermutlich fehlt mir nur ein Flag oder etwas zu klein aus dem Zip-Befehl, aber wie kann ich fcst_20100318_0319/ als Stammverzeichnis verwenden?

32
Tarka

Ich glaube nicht, dass Zip eine Flagge dafür hat. Ich denke, der einzige Weg ist so etwas wie:

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

(Der umgekehrte Schrägstrich dient nur der Übersichtlichkeit. Sie können ihn entfernen und alles auf eine Zeile setzen.)

Da PHP den Befehl in einer Subshell ausführt, wird Ihr aktuelles Verzeichnis nicht geändert.

40
JayM

Ich habe es auch mit diesem Befehl klappen lassen

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

2
vivek barsaiyan
cd /home/public_html/site/upload/ && Zip -r sub_upload.Zip sub_upload/
0
Bassam Essa