Zmień uprawnienia do pojedynczego pliku w pliku tar.gz

2

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ć.

Darth Hunterix
źródło
Z ciekawości, czy nie możesz zmienić uprawnień do plików w systemie Linux przed skompresowaniem?
cascer1
Krótko mówiąc, nie mam kontroli nad częścią Linuksa.
Darth Hunterix,
Czy próbowałeś wyodrębnić pojedynczy plik, zaktualizować jego uprawnienia i zaktualizować archiwum? Nie znaczy to, że będzie to niekoniecznie szybsze lub wymagające dużej ilości dysku niż rozpakowanie pełnego archiwum. Problem z spakowanymi plikami polega na tym, że zmiana jednego bitu całkowicie zmieni archiwum od miejsca, w którym zmiana jest zakodowana. Najlepsze, co możesz zrobić, to gunzipnieskompresowany .tarplik, załatać to i gzipjeszcze raz, ale musisz znaleźć szczegółowy tarformat, aby załatać prawidłowe sumy kontrolne.
AFH
Tak, próbowałem tego, ale ponieważ jest on wyodrębniany do pamięci kontrolowanej przez system Windows, wszystkie informacje o uprawnieniach są tracone, a wywoływanie 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.
Darth Hunterix,