Estaba probando imapsync 1.727 para sincronizar imap desde una versión anterior de zimbra (7.1.4) a la versión 8.7.7 y obtuve el error anterior con el siguiente comando:
imapsync \
--maxsize 52428800 --buffersize 8192000 \
--nofoldersizes --nosyncacls --subscribe --syncinternaldates \
--authmech2 PLAIN \
--exclude '(?i)\b(Junk|Spam|Trash)\b' \
--skipheader 'X-*' \
--regexflag 's/\\\\(Answered|Flagged|Deleted|Seen|Recent|Draft)[^\s]*\s*//ig' --debugflags \
--regextrans2 's,:,-,g' \
--regextrans2 's,\",'\'',g' \
--regextrans2 's,\s+(?=/|$),,g' \
--regextrans2 's,^(Briefcase|Calendar|Contacts|Emailed Contacts|Notebook|Tasks)(?=/|$), $1 Folder,ig' \
--host1 "$host1" --host2 "$host2" \
--user1 "$username" --authuser1 admin_account_name \
--password1 admin_account_password \
--user2 "$username" --authuser2 admin_account_name \
--password2 admin_account_password \
--regextrans2 's,\",-,g' \ # change quotes to dashes
--regextrans2 's,&AAo-|&AA0ACg-|&AA0ACgANAAo-(?=/|$),,g' \
--ssl1 --authmech1 PLAIN --maxcommandlength1 16384 \
--dry --debug --debugimap \
¿Por qué falló en la línea 18 pero no en regtrans2 en otras líneas?
Respuesta1
No puede tener una continuación de línea seguida de un comentario en la misma línea.
Esto esta bien:
echo \
hello
Esto no está bien:
echo \ #newline here
hello
En el primer ejemplo, \
se escapa la nueva línea y el comando que se ejecuta será echo hello
.
En el segundo caso, \
simplemente escapa del espacio que sigue y obtenemos #newline here
como resultado, seguido del mensaje de error hello: not found [No such file or directory]
(o similar).
Entonces, elimina el comentario (todo, incluido el espacio, después del último \
) en la línea que ahora dice
--regextrans2 's,\",-,g' \ # change quotes to dashes
Respuesta2
Recordando experiencias pasadas, puede parecer que hay que reorganizarlo específicamente como se muestra a continuación, entonces funciona.
imapsync \
--dry \
--host1 "$host1" --host2 "$host2" \
--user1 "$username" --authuser1 admin \
--ssl1 --authmech1 PLAIN \
--password1 "$admin_account_password" \
--user2 "$username" --authuser2 admin \
--ssl2 --authmech2 PLAIN \
--password2 "$admin_account_password" \
--maxsize 52428800 --buffersize 8192000 \
--nofoldersizes --nosyncacls --subscribe --syncinternaldates \
--authmech2 PLAIN \
--exclude '(?i)\b(Junk|Spam|Trash)\b' \
--skipheader 'X-*' \
--regextrans2 "s,&AAo-|&AA0ACg-|&AA0ACgANAAo-(?=/|$),,g" \
--regexflag 's/\\\\(?!Answered|Flagged|Deleted|Seen|Recent|Draft)[^\s]*\s*//ig' --debugflags \
--regextrans2 's,:,-,g' \
--regextrans2 's,\",'\'',g' \
--regextrans2 's,\s+(?=/|$),,g' \
--regextrans2 "s,^(Briefcase|Calendar|Contacts|Emailed Contacts|Notebook|Tasks)(?=/|$), $1 Folder,ig" \
--regextrans2 's,\",-,g' \