Estoy haciendo un script de shell para empaquetar algunos archivos. Estoy comprimiendo un directorio como este:
zip -r /Users/me/development/something/out.zip /Users/me/development/something/folder/
El problema es que el archivo resultante out.zip tiene la ruta completa del archivo. Es decir, cuando se descomprime, tendrá toda la ruta "/ Users / me / development / anotherthing /". ¿Es posible evitar estas rutas profundas al colocar un directorio en un archivo?
Cuando ejecuto zip desde el directorio de destino, no tengo este problema.
zip -r out.zip ./folder/
En este caso, no consigo toda la basura. Sin embargo, el script en cuestión será llamado desde donde sea.
FWIW, estoy usando bash en Mac OS X 10.6.
$ pushd /some/path ; do-something ; popd
... o incluso con subcapas:$ ( cd /some/path ; do-something )
&&
lugar de;
es una buena idea para que el otro comando no se ejecute sicd
falla (error tipográfico u otro problema):(cd /some/path && do-something)
zip -j
?Sí. Use la
-j
opción conzip
.-j
es "basura el camino". Según la página del manual en zip :Usar
-j
significa el siguiente comando:Creará un archivo similar a:
fuente
Hay
pushd
ypopd
y$OLDPWD
. Suponiendo que$PWD
es/Users/me/development
do:Ahora el
$PWD
regreso a/Users/me/development
fuente