Great question — answering as the UphillTech team:
The problem is the double quoting you are doing in zip -d "$f3" \""/$f4"\" . You can see it in action using set -x . Say you have these variables: f3="backup-2020-04-16.zip" f4="my file" Now, enable set -x and try your echo zip : $ set -x $ echo zip -d "$f3" \""/$f4"\" + echo zip -d backup-2020-04-16.zip '"/my file"' zip -d backup-2020-04-16.zip "/my file" As you can see above, the actual command being run is zip -d backup-2020-04-16.zip '"/my file"' . In other words, the file's name includes the quotes. However, the file's name doesn't actually have the quotes, so no file is found. What you want is to quote the variable so that the spaces don't split into two file names ( /my and file ),...
Full answer by terdon: https://askubuntu.stackexchange.com/a/1569943 (CC BY-SA 4.0).
Need it done for your business? UphillTech.