Das aus der Unix-Welt bekannte Packprogramm tar ist unter anderem in Windows 10 und Windows Server 2019 enthalten, dies eröffnet nicht nur hinsichtlich der Interoperabilität zwischen verschiedenen Betriebssystemen neue Möglichkeiten.

Mit tar lassen sich einzelne Dateien genauso wie gesamte Verzeichnisstrukturen als Archiv packen:

tar -cf archive.tar *.*

Die Syntax ist simple:

“-c” steht für “Create”, also das Erzeugen eines Archivs, während “-f” für “File” (Datei) als Ziel steht. Folgen tut der Name der zu erstellenden Archiv-Datei und die Quelle. Ohne die Angabe des Parameters “-z” ist das Archiv allerdings nicht komprimiert. Ein durchaus typischer Aufruf zum Erstellen eines Archivs sieht so aus:

tar -cvzf archive.tar.gz D:\Daten

Der Parameter “-v” steht für “Verbose”, gemeint ist die detaillierte Ausgabe, so lässt sich beispielsweise Ablesen, was genau gepackt wurde, während “-z” für “Zip” (Komprimierung) steht.

UNC-Pfade können ebenso verwendet werden:

tar -cvzf \\nas\backup\archive.tar.gz \\server\daten

Verwendet man statt der Unix-typischen Endung “.tar.gz” schlicht “.zip” kann das Archiv allerdings nicht im Windows-Explorer geöffnet werden! Hinsichtlich des bequemen Einsehens und Entpackens von Archiven sind Tools wie 7-Zip zu empfehlen.

Ein tar-Archiv wird wie folgt entpackt:

tar -xvf archive.tar.gz -C C:\Temp\

Der Parameter “-C” sorgt dafür, das in ein anderes bzw. gezieltes Verzeichnis entpackt wird. Generell und Unix-typisch gilt es die Groß-/Kleinschreibung zu beachten!

Der Archiv-Inhalt kann mit

tar -tvf archive.tar.gz

eingesehen werden, wobei hier “-t” für “List” steht.

tar in älteren Windows-Versionen nachrüsten

Verwendet man tar in Skripten, so kann es wünschenswert sein, diesen Befehl bzw. dieses Tool in älteren Windows-Versionen ebenfalls zur Verfügung zu haben. Eine Möglichkeit ist bsdtar (für Windows) von Pedro Albanese, das hier in einer 32-bit Version heruntergeladen werden kann:

bsdtar | SourceForge.net

Eine weitere Option besteht darin, die entsprechenden Dateien beispielsweise von einem Windows Server 2019 auf einen Windows Server 2016 zu kopieren. Benötigt werden:

C:\Windows\System32\archiveint.dll
C:\Windows\System32\tar.exe

Performance-Unterschiede

Im Rahmen eines Kunden-Projekts kommt auf einem Windows Server 2016 unter anderem tar zum Einsatz. Es werden hierbei Daten von einem NAS geladen und auf dem Server bevor dieses weiter verarbeitet werden als nicht komprimiertes Archiv gepackt. bsdtar kommt dabei im Netzwerk lediglich auf 100 MBit/s, während tar vom Windows Server 2019 auf immerhin 250 MBit/s kommt. Ob diese Differenz allein dem 32-/64-bit Umstand geschuldet ist, bleibt unklar.

Ein Versuch mit 7-Zip lag mit 150 Mbit/s zwischen den beiden tar-Varianten:

7za.exe -ttar a archive.tar \\nas\share

In diesem Rahmen darf nicht unerwähnt bleiben, das es sich hierbei um ein älteres Single-Bay-NAS handelt, d.h. die Performance ist dementsprechend.

Quellen

Microsoft Tech Community – Tar and Curl Come to Windows!