
Ich erstelle eine Tar-Datei aus einer Liste von Dateien mit der Option -T. Beim Extrahieren der Tar-Datei lauten die Unterverzeichnisberechtigungen root:root statt der Berechtigungen für das Verzeichnis selbst? Irgendwelche Ideen, wie man das beheben kann?
Beispiel:
# cat Dateiliste.txt
Datei1.txt
dir1/file2.txt
dir1/dir2/file3.txt
# tar cf files.tar -T Dateiliste.txt
# tar xf-Dateien.tar
Die Eigentümerschaft der extrahierten Dateien stimmt mit der ursprünglichen Eigentümerschaft von file1.txt, file2.txt und file3.txt überein. Die Eigentümerschaft von dir1 und dir2 stimmt nicht überein. Eigentümer ist root:root
Ich könnte eine ähnliche Lösung verfolgen wieBewahren Sie beim Extrahieren des Tar-Archivs die Eigentumsrechte und Rechte des übergeordneten Verzeichnisses auf. aber ich hatte gehofft, dass es einen anderen Weg gibt, da dies für eine Reihe von Verzeichnissen möglicherweise mehr Arbeit bedeuten könnte.
Antwort1
Sie müssen sowohl die Verzeichnisse als auch die Dateien sichern. Dazu müssen Sie zwei Dinge tun:-
1) Fügen Sie die Verzeichnisse zu Ihrer Dateiliste hinzu:
file1.txt
dir1
dir1/file2.txt
dir1/dir2
dir1/dir2/file3.txt
2) Fügen Sie --no-recursion
der Sicherungsausführungszeichenfolge Folgendes hinzu, um die Einbeziehung aller anderen Dateien in den Verzeichnissen zu verhindern:
tar cf files.tar --no-recursion -T filelist.txt
Beachten Sie, dass die Reihenfolge wichtig ist: Die Verzeichnisse müssen vor jedem Verweis in einem Unterverzeichnis oder einer Datei stehen und der --no-recursion
Parameter muss vor dem -T
, aber nach dem cf FileName
Befehl stehen.