Antes de chegar ao problema, vou citar o comentário de Jacob Vlijm sob esta resposta (obrigado pelo comentário e pelo link):
% bl0ck_qu0te%Aqui é a primeira (ou uma das primeiras) depreciações proposta, datada de 2010 .
Portanto, você deve usar subprocess.Popen()
em vez de os.system()
.
Quando você executa os.system()
o comando é executado no Dash ( /bin/sh
), enquanto quando você executa o comando em um terminal o comando é executado no Bash ( /bin/bash
);
O Dash não suporta expansão de contraventamento e interpreta {.zip,}
literalmente;
Execute o comando no Bash: altere
os.system("zip -r " + PATH + "{.zip}")
para
os.system("bash -c 'zip -r " + PATH + "{.zip,}'")
Ou de qualquer maneira, como Darael sugere que o FWIW passe /Backups/backups/20152011-120209{.zip,}
para expandir /Backups/backups/20152011-120209
para /Backups/backups/20152011-120209.zip
e /Backups/backups/20152011-120209
você pode simplesmente passar os caminhos diretamente evitando gerar outro shell:
os.system("zip -r " + PATH + ".zip " + PATH)