Возможно, более подходящий подход, который мог бы упростить задачу, — это возможность работать с существующими резервными копиями, которые могут иметь расширение *.gz или *.zst, используя автоматическое определение tar:
tar --auto-compress -c -f ../file.tar.gz .
tar --auto-compress -c -f ../file.tar.zst .
Более важно, конечно, при распаковке, когда мы можем не знать, с чем именно столкнёмся.
В настоящее время код на Ruby выполняет множество операций, которые может выполнить сам tar. Надеемся, это позволит упростить процесс, а не усложнить его.