Я делаю сценарий оболочки для упаковки некоторых файлов. Я архивирую каталог, как это:
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/
В этом случае я не получаю весь мусор. Однако соответствующий скрипт будет вызываться откуда угодно.
Я использую bash в Mac OS X 10.6.
$ pushd /some/path ; do-something ; popd
... или даже с подоболочками:$ ( cd /some/path ; do-something )