Подтвердить что ты не робот

Команда для zip каталога с использованием определенного каталога в качестве корня

Я пишу PHP script, который загружает серию сгенерированных файлов (с помощью wget) в каталог, а затем затыкает их затем, используя команду zip.

Загрузка работает отлично, и в основном работает zipping. Я запустил команду:

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/ в качестве корневого каталога?

4b9b3361

Ответ 1

Я не думаю, что у zip есть флаг для этого. Я думаю, что единственный способ - это что-то вроде:

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

(Обратная косая черта просто для ясности, вы можете удалить ее и поместить все на одну строку.)

Так как PHP выполняет команду в подоболочке, она не изменит ваш текущий каталог.

Ответ 2

Я также заработал, используя эту команду

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

Ответ 3

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