Você provavelmente está usando "/" em vez de "\", então a solução certa será assim:
mypassword\!\@\#\$
Então, eu tive essa pergunta antes e ela foi respondida " Terminal - Zip vários diretórios em arquivos zip separados com senha " no entanto eu não consegui descobrir como eu posso usar uma senha com caracteres especiais como! @ # $. Eu tentei as soluções típicas:
Nada funcionou. Este é o comando que funcionou para mim, exceto que a senha nunca foi definida como correta (em minhas tentativas, ela foi configurada para algo diferente do que eu pretendia, ou não foi definida em conjunto)
for i in */; do zip -r "${i%/}.zip" "$i" -p "mypassword!@#$" ; done
Tags password zip shell-script