Muszę zmienić uprawnienia do pojedynczego pliku w archiwum tar.gz bez wypakowywania go, ale nie mogłem znaleźć żadnego sposobu na osiągnięcie tego ani na stronach podręcznika, ani przez wyszukiwarkę Google.
Bardziej szczegółowy scenariusz:
Zaczynamy na komputerze z systemem Linux z trzema plikami:
[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
Następnie tworzymy archiwum tar.gz:
tar cvzf test.tar.gz a.txt b.txt c.txt
Następnie plik test.tar.gz jest wysyłany na mój komputer z systemem Windows. Teraz muszę zmienić uprawnienia do pliku a.txt bez rozpakowywania całego archiwum. Mam dostęp do MinGW, ale nie do pełnej maszyny Linux (wirtualnej lub fizycznej). Nie chcę też rozpakowywać całego archiwum. Można założyć, że znam zarówno nazwę, jak i lokalizację pliku w archiwum.
Rozwiązanie jest ograniczone do narzędzi wiersza poleceń, ponieważ zamierzam je później napisać.
gunzipnieskompresowany .tarplik, załatać to i gzipjeszcze raz, ale musisz znaleźć szczegółowy tarformat, aby załatać prawidłowe sumy kontrolne.
chmodniczego nie zmienia. Miałem nadzieję, że istnieje jakaś kombinacja opcji, w tarktórej pozwoliłbym rozwiązać problem, i po prostu tęskniłem za nim podczas wyszukiwania.