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ć.
gunzip
nieskompresowany .tar
plik, załatać to i gzip
jeszcze raz, ale musisz znaleźć szczegółowy tar
format, aby załatać prawidłowe sumy kontrolne.
chmod
niczego nie zmienia. Miałem nadzieję, że istnieje jakaś kombinacja opcji, w tar
której pozwoliłbym rozwiązać problem, i po prostu tęskniłem za nim podczas wyszukiwania.