zip Linux e excluir dir via bash / shell script
Estou tentando escrever um script bash / shell para compactar uma pasta específica e ignorar determinados sub-diretórios nessa pasta.
Esta é a pasta que estou tentando compactar "sync_test5":
Meu script bash gera uma lista de ignorados (baseado em) e chama a função zip assim:
#!/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"
Agora, esse script é executado sem erros, no entanto, énão ignorando / excluindo os diretórios que especifiquei.
Então, eu tive o script shell emitindo o comando que ele tentou executar, que era:
zip -r 12-08-2014_072810.website.zip sync_test5 -x sync_test5/dir_to_ignore/**\* sync_test5/dir2_to_ignore/**\*
Agora, se eu executar o comando acima diretamente em uma massa como esta, ele funcionará:
Então, por que meu script de shell não exclui o trabalho como pretendido? o comando que está sendo executado é idêntico (no shell e no putty diretamente).