Ich habe ein Teerarchiv und möchte es verwenden tar -xvf
.
In diesem Teerarchiv habe ich einen Verzeichnisbaum, der einige Dateien enthält. Auf meinem Solaris 10-System ist dieser Verzeichnisbaum bereits vorhanden und enthält mehrere Dateien.
Wenn ich das Archiv entpacke, wird der gesamte Verzeichnisbaum überschrieben oder werden nur die im Archiv enthaltenen Dateien überschrieben?
Werden die Dateien gelöscht, die keinen Korrespondenten im Archiv haben?
tar
solaris-10
Felicia
quelle
quelle
Antworten:
Bereits vorhandene doppelte Dateien können je nach System entpackt und überschrieben werden. Dies ist jedoch normalerweise standardmäßig der Fall. Dateien, die sich im Archiv befinden, sich jedoch nicht auf Ihrem System befinden, werden einfach neuen oder vorhandenen Verzeichnissen auf Ihrem System hinzugefügt.
Dir
/test
Archiv
test.tar
wird wahrscheinlich zusammengeführt mit:
Durch Hinzufügen des
-k
Flags zum Befehl tar wird sichergestellt, dass keine der Dateien in Ihrem Zielverzeichnis überschrieben wird:quelle
noclobber
(das übrigens auch in POSIX-Shells vorhanden ist) betrifft nur Dateien, auf die>foo
in der Shell umgeleitet wird . Es hat keine Auswirkung auf Teer.echo foo > bar.txt
wird bar.txt nicht überschrieben, wenn es existiert. Es hat keine Auswirkung darauf, was ein Programm wie tar überschreibt.dir/file1
.Am einfachsten ist es, ein neues, leeres Verzeichnis zu erstellen, eine CD darauf zu erstellen und die Dateien dort zu extrahieren. Sie müssen jedoch darauf achten, dass die extrahierten Dateien relativ (beginnen mit ./) und nicht absolut (beginnen mit /) sind. Führen Sie das Inhaltsverzeichnis durch weniger, um festzustellen, was der Fall ist, wenn Sie es nicht wissen (tar -tvf tar_filename | less).
Sie können anhand der Manpage herausfinden, ob Ihre Tar-Version standardmäßig überschrieben wird oder nicht. Tar löscht während des Extrahierens keine Dateien. Dies ist ein weiterer Grund, warum Benutzer normalerweise vor dem Extrahieren aus einem neuen, leeren Verzeichnis starten.
quelle