-C não afeta onde o arquivo é criado. Isso afeta apenas quais arquivos são adicionados ao arquivo. Assim, por exemplo, dado tar cvf foo.tar a -C /b c -C /d e , tar adicionará a do diretório atual, alterne para /b e adicione c , mude para /d e adicione e . foo.tar será criado no diretório atual (onde a foi).
Se nenhum arquivo for fornecido na linha de comando para adicionar, mas -C /some/dir for usado, então tar mudará para /some/dir e adicionará tudo nele ao arquivo morto.
(Da mesma forma, ao extrair, -C não afeta onde tar procura o arquivo morto. Isso afeta somente onde os arquivos extraídos vão).
Portanto: tar czf Pictures_$CREATION_TIMESTAMP.tar.gz -C /home/$USER Pictures de /home/$USER/coding/python_code/ sempre criará o arquivo em /home/$USER/coding/python_code/ , com o diretório Pictures de /home/$USER .
Se você quiser que o diretório Pictures de /home/$USER em um arquivo criado em /home/$USER , você precisará cd to /home/$USER e criar o arquivo:
cd "/home/$USER"; tar czf "Pictures_$CREATION_TIMESTAMP.tar.gz" Pictures
Ou especifique o caminho para o arquivo:
tar czf "/home/$USER/Pictures_$CREATION_TIMESTAMP.tar.gz" -C "/home/$USER" Pictures