Solution la plus simple :créer un script shell avec
#/bin/sh
tar -zcf archive.tar.gz.tmp mydir
mv archive.tar.gz.tmp archive.tar.gz
Et utilisez nohup myscript
. Peut-être avec une documentation supplémentaire dans le script.
(Oui, je suis une ventouse pour la documentation. Surtout lorsque vous travaillez avec plusieurs personnes ou lorsque vous pourriez un jour quitter le travail et que votre successeur doit comprendre pourquoi".)
Une alternative pourrait être de démarrer un nouveau shell pour une sous-tâche (dans ce cas, votre tar et votre déplacement)
nohup `$(tar -zcf archive.tar.gz.tmp monrep; mv archive.tar.gz.tmp archive.tar.gz)
Alternative 2 :
nohup ```tar -zcf archive.tar.gz.tmp monrep; mv archive.tar.gz.tmp archive.tar.gz```.
Mais je préfère vraiment le scénario. Les commentaires qu'il contient pourraient être très utiles lorsque vous ou quelqu'un d'autre regarderez le script dans quelques années et vous demanderez pourquoi cela a été fait de cette façon.
Sur une note sans rapport :comment diable puis-je publier une réponse avec un backtick ? (La commande pour qu'un shell "utilise cette commande ; envoie la sortie à une autre commande en tant qu'entrée").
Je pense que vous avez besoin de parenthèses.
nohup $(tar -zcf archive.tar.gz.tmp mydir; mv archive.tar.gz.tmp archive.tar.gz) >/dev/null 2>&1 &
Peut-être un bash wrap ?
nohup bash -c 'tar -zcf archive.tar.gz.tmp mydir > /dev/null 2>&1 ; mv archive.tar.gz.tmp archive.tar.gz > /dev/null 2>&1' &