Как добавить файлы и каталоги в zip-файл без корневого каталога? - PullRequest
5 голосов
/ 18 июня 2009

Утилита zip, когда вызывается как zip -r out.zip base/* в этой структуре каталогов

.
./base
./base/b
./base/b/c
./base/d

создает следующий результат

  adding: base/b/ (stored 0%)
  adding: base/b/c (stored 0%)
  adding: base/d (stored 0%)

Я хотел бы получить файл, содержащий данные из следующего вывода

  adding: b/ (stored 0%)
  adding: b/c (stored 0%)
  adding: d (stored 0%)

Я ожидал, что опция -j поможет мне, но это не так: она полностью выравнивает структуру каталогов. На данный момент единственное решение, которое я нашел, - это перейти на базу и вызвать zip отсюда, но мне было интересно, есть ли переключатель мощности, который я не могу распознать как таковой в документации.

1 Ответ

4 голосов
/ 18 июня 2009

Я понимаю, что вы не хотите cd, но ...

Если ничего не помогло, и вы надеетесь сохранить ваш звонок на одной строке, вы можете объединить вызовы и использовать относительный путь для вывода zip в корне:

Для Windows:

cd base & zip -r ..\out.zip * & cd ..

Для Linux / Unix:

cd base ; zip -r ../out.zip * ; cd ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...