Vielleicht ist ein besserer Ansatz, der die Dinge vereinfachen könnte – die Fähigkeit, mit bestehenden Backups umzugehen, die *.gz oder *.zst sein könnten – die automatische Erkennung von tar zu nutzen:
tar --auto-compress -c -f ../file.tar.gz .
tar --auto-compress -c -f ../file.tar.zst .
Noch wichtiger ist natürlich das Entpacken, wo wir möglicherweise nicht wissen, was uns erwartet.
Derzeit macht der Ruby-Code viele Dinge, die tar selbst erledigen kann. Hoffentlich lässt sich dies vereinfachen, anstatt komplexer zu werden.