Избегайте нежелательного пути в zip-файле

Я делаю сценарий оболочки для упаковки некоторых файлов. Я архивирую каталог как это:

zip -r /Users/me/development/something/out.zip /Users/me/development/something/folder/

Проблема состоит в том, что результирующий архив out.zip имеет весь путь к файлу в нем. Таким образом, при разархивации это будет иметь целое "/Users/me/development/anotherthing /" путь в нем. Действительно ли возможно избежать этих глубоких путей при помещении каталога в архив?

Когда я выполняю zip из целевого каталога, у меня нет этой проблемы.

zip -r out.zip ./folder/

В этом случае я не получаю весь спам. Однако рассматриваемый сценарий назовут от везде, где.

FWIW, я использую удар на Mac OS X 10.6.

50
задан 14.03.2010, 04:01

1 ответ

Ваш сценарий должен использовать cd или pushd и popd перемещаться в каталог, который будет корнем архива прежде, чем выйти zip команда. Как Вы делаете это точно будет зависеть от того, как сценарий знает что к на молнии. Но, если бы Вы хотите/Users/me/development/something/folder, заархивированный с внутренними путями всего./папка, необходимо было бы сделать это:

pushd /Users/me/development/something
zip -r /path/to/out.zip ./folder/
popd

Это приведет к Вашему out.zip, содержащему относительные пути, которые Вы хотите.

При необходимости в помощи написать сценарий этого необходимо будет показать нам сценарий.

86
ответ дан 07.12.2019, 08:29

Теги

Похожие вопросы