Я делаю сценарий оболочки для упаковки некоторых файлов. Я архивирую каталог как это:
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.
Ваш сценарий должен использовать cd
или pushd
и popd
перемещаться в каталог, который будет корнем архива прежде, чем выйти zip
команда. Как Вы делаете это точно будет зависеть от того, как сценарий знает что к на молнии. Но, если бы Вы хотите/Users/me/development/something/folder, заархивированный с внутренними путями всего./папка, необходимо было бы сделать это:
pushd /Users/me/development/something
zip -r /path/to/out.zip ./folder/
popd
Это приведет к Вашему out.zip, содержащему относительные пути, которые Вы хотите.
При необходимости в помощи написать сценарий этого необходимо будет показать нам сценарий.