Tworzę skrypt powłoki, aby spakować niektóre pliki. Zamykam taki katalog:
zip -r /Users/me/development/something/out.zip /Users/me/development/something/folder/
Problem polega na tym, że wynikowe archiwum out.zip zawiera całą ścieżkę do pliku. Oznacza to, że po rozpakowaniu będzie zawierała całą ścieżkę „/ Users / me / development / anotherthing /”. Czy można uniknąć tych głębokich ścieżek podczas umieszczania katalogu w archiwum?
Gdy uruchamiam zip z katalogu docelowego, nie mam tego problemu.
zip -r out.zip ./folder/
W tym przypadku nie dostaję wszystkich śmieci. Jednak dany skrypt zostanie wywołany z dowolnego miejsca.
FWIW, używam basha w systemie Mac OS X 10.6.
$ pushd /some/path ; do-something ; popd
... lub nawet z podpowłokami:$ ( cd /some/path ; do-something )