Ändern Sie die Berechtigungen für eine einzelne Datei in der Datei tar.gz

828
Darth Hunterix

Ich muss die Erlaubnis für eine einzelne Datei in einem tar.gz-Archiv ändern, ohne sie zu extrahieren, aber ich konnte keinen Weg finden, sie entweder auf man-Seiten oder über die Google-Suche zu erreichen.

Detailliertes Szenario:

Wir starten auf einer Linux-Maschine mit drei Dateien:

[root@localhost tar-test]# ls -l total 0 -rw-r--r--. 1 root root 0 Nov 17 14:41 a.txt -rw-rw-r--. 1 root root 0 Nov 17 14:41 b.txt -rw-r--r--. 1 root root 0 Nov 17 14:41 c.txt 

Dann erstellen wir das tar.gz-Archiv:

tar cvzf test.tar.gz a.txt b.txt c.txt 

Dann wird test.tar.gz an meinen Windows-Computer gesendet. Jetzt muss ich die Berechtigungen für eine.txt-Datei ändern, ohne das gesamte Archiv zu extrahieren. Ich habe Zugriff auf MinGW, aber nicht auf eine vollständige Linux-Maschine (virtuell oder physisch). Ich möchte auch nicht das gesamte Archiv extrahieren. Es kann davon ausgegangen werden, dass ich sowohl den Namen als auch den Speicherort der Datei im Archiv kenne.

Die Lösung ist auf Kommandozeilen-Tools beschränkt, da ich später ein Skript erstellen möchte.

3
Könnten Sie aus Neugier nicht die Dateiberechtigungen für Linux ändern, bevor Sie sie komprimieren? cascer1 vor 8 Jahren 0
Um es kurz zu machen: Ich habe keinen Einfluss auf den Linux-Prozess. Darth Hunterix vor 8 Jahren 0
Haben Sie versucht, die einzelne Datei zu extrahieren, die Berechtigungen zu aktualisieren und das Archiv zu aktualisieren? Nicht, dass dies notwendigerweise schneller oder diskintensiver sein wird als das vollständige Archiv zu extrahieren. Das Problem bei gezippten Dateien ist, dass das Ändern eines einzelnen Bits das Archiv vollständig von dem Punkt aus ändert, an dem die Änderung kodiert wird. Das Beste, was Sie hoffen können, ist, die unkomprimierte `.tar'-Datei zu" gunzip "," patch "und" gzip "erneut zu kopieren, aber Sie müssen das detaillierte" tar "-Format finden, um den korrekten Check- Summen. AFH vor 8 Jahren 0
Ja, ich habe es versucht, aber da es in einen Windows-gesteuerten Speicher extrahiert wird, gehen alle Informationen über Berechtigungen verloren und der Aufruf von "chmod" ändert nichts. Ich habe gehofft, dass es eine Kombination von Optionen in "tar" gibt, die es mir erlauben, das Problem zu lösen, und es ist nur, dass ich es bei meiner Suche vermisst habe. Darth Hunterix vor 8 Jahren 0

0 Antworten auf die Frage