Une approche peut-être meilleure, qui pourrait simplifier les choses – pouvoir gérer des sauvegardes existantes qui peuvent être en *.gz ou *.zst – consiste à utiliser la détection automatique de tar :
tar --auto-compress -c -f ../file.tar.gz .
tar --auto-compress -c -f ../file.tar.zst .
Plus important encore pour la décompression, bien sûr, où nous ne savons peut-être pas ce que nous allons trouver.
Actuellement, le code Ruby semble faire beaucoup de choses que tar peut faire lui-même. Espérons que cela pourra être simplifié, plutôt que de devenir plus complexe.