Команда, чтобы сжать каталог, используя определенный каталог в качестве корня - PullRequest
32 голосов
/ 18 марта 2010

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

Ответы [ 3 ]

40 голосов
/ 19 марта 2010

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

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

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

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

3 голосов
/ 16 сентября 2013

У меня также получилось с помощью этой команды

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

0 голосов
/ 04 июня 2012
cd /home/public_html/site/upload/ && zip -r sub_upload.zip sub_upload/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...