pokaż różnice między plikiem a plikiem w (skompresowanym) archiwum tar

1

Powiedzmy, że rozpakowałem plik tar skompresowany gz i nie pamiętam, jakie zmiany wprowadziłem do rozpakowanych plików, lub zarchiwizowałem folder jakiś czas temu i chcę wiedzieć, co się zmieniło w plikach od tego czasu.

Mogę użyć, tar -zdaby uzyskać przegląd. Powiedzmy, że pokazuje, że plik foosię zmienił. Jak mogę zobaczyć zmiany w tym pliku, tj. Różnicę między plikiem w moim systemie plików a (starszym) plikiem w archiwum (najlepiej w vimdiff, ale wyjście diff też byłoby w porządku)?

Kyss Tao
źródło

Odpowiedzi:

1

Otwórz skompresowany plik tar w vimie, przesuń kursor do fooi wciśnij Enter. Następnie wykonaj

:vert diffsplit local/path/to/foo
garyjohn
źródło
2

Użyj tar ... -Owraz z podstawieniem procesu w bash.

diff ... <( tar ... -O ... file.ext ) file.ext
Ignacio Vazquez-Abrams
źródło
fajnie jest też uzyskać różnicę za pomocą jednej linii poleceń; po diff <(tar -xzOf archive.tgz dir/file.ext) dir/file.ext
krótkiej
(poprawka: Myślę, że to rozumiem, <( ... )przekształca standardowe wyjście ... w plik)
Kyss Tao,