Linux zip y excluir directorio a través de script bash / shell
Estoy tratando de escribir un script bash / shell para comprimir una carpeta específica e ignorar ciertos subdirectorios en esa carpeta.
Esta es la carpeta que estoy tratando de comprimir "sync_test5":
Mi script bash genera una lista de ignorados (Residencia en) y llama a la función zip de esta manera:
#!/bin/bash
SYNC_WEB_ROOT_BASE_DIR="/home/www-data/public_html"
SYNC_WEB_ROOT_BACKUP_DIR="sync_test5"
SYNC_WEB_ROOT_IGNORE_DIR="dir_to_ignore dir2_to_ignore"
ignorelist=""
if [ "$SYNC_WEB_ROOT_IGNORE_DIR" != "" ];
then
for ignoredir in $SYNC_WEB_ROOT_IGNORE_DIR
do
ignorelist="$ignorelist $SYNC_WEB_ROOT_BACKUP_DIR/$ignoredir/**\*"
done
fi
FILE="$SYNC_BACKUP_DIR/$DATETIMENOW.website.zip"
cd $SYNC_WEB_ROOT_BASE_DIR;
zip -r $FILE $SYNC_WEB_ROOT_BACKUP_DIR -x $ignorelist >/dev/null
echo "Done"
Ahora este script se ejecuta sin error, sin embargo esno ignorando / excluyendo los directorios que he especificado.
Entonces, el script de shell generó el comando que intentó ejecutar, que era:
zip -r 12-08-2014_072810.website.zip sync_test5 -x sync_test5/dir_to_ignore/**\* sync_test5/dir2_to_ignore/**\*
Ahora, si ejecuto el comando anterior directamente en masilla como esta, funciona:
Entonces, ¿por qué mi script de shell no excluye el trabajo previsto? El comando que se está ejecutando es idéntico (en shell y masilla directamente).