Dateien und Verzeichnisse rekursiv mit tar kopieren

Durch das Kopieren einer Verzeichnisstruktur und ihres Inhalts in ein anderes Dateisystem mit tar bleiben Eigentümer, Berechtigungen und Zeitstempel erhalten. Mit einem einfachen Trick können Sie mit tar eine rekursive Kopie ausführen, ohne eine tar-Zwischendatei zu erstellen.


Um alle Dateien und Unterverzeichnisse im aktuellen Arbeitsverzeichnis in das Verzeichnis / target zu kopieren, verwenden Sie:

tar cf - * | (cd / target; tar xfp -)

Der erste Teil des Befehls vor der Pipe weist tar an, ein Archiv von allem im aktuellen Verzeichnis zu erstellen und es in die Standardausgabe zu schreiben (der In-Name eines Dateinamens weist häufig auf stdout hin). Die Befehle in Klammern bewirken, dass die Shell das Verzeichnis in das Zielverzeichnis ändert und die Daten von der Standardeingabe aufhebt. Da die Befehle cd und tar in Klammern enthalten sind, werden ihre Aktionen zusammen ausgeführt.

Die Option -p im Befehl zum Extrahieren von Tar weist tar an, die Berechtigungs- und Besitzinformationen zu erhalten, sofern der Benutzer den Befehl ausführt. Wenn Sie den Befehl als Superuser ausführen, ist diese Option standardmäßig aktiviert und kann weggelassen werden.