Wiem, że możesz zrobić -W podczas tworzenia archiwum, ale jak zweryfikować i już utworzone archiwum? tvWf mówi, że to nie jest prawidłowe archiwum tar?
$ mkdir tmp
$ echo asdkfjh > tmp/a
$ echo qweroiu > tmp/b
$ ls
tmp
$ tar cvf archive.tar tmp
tmp/
tmp/a
tmp/b
$ tar tvWf archive.tar
tar: This does not look like a tar archive
tar: Skipping to next header
tar: VERIFY FAILURE: 1 invalid header detected
tar: Error exit delayed from previous errors
To samo dzieje się zarówno z wersją tar 1.15 (która jest domyślnym systemem na Centos 5), jak i 1.26 (która jest najnowszą wersją GNU).
t
sam po prostu wyświetla zawartość archiwum. Chcę sprawdzić, czy pliki w tar mają taką samą zawartość jak oryginały (wciąż w systemie plików), co - jak myślałem -W
powinno być zrobione (prawda?).tar tvWf t.tar
tar: --verify cannot be used with -t
:tar (GNU tar) 1.27.1
GNU
tar
ma--compare
opcję. Szczegółowe informacje można znaleźć w części Porównanie członków archiwum z systemem plików w dokumentacji.źródło
tar -df /path/to/archive.tar.bz2
różnice między plikami w archiwum a systemem plików, rozwiązując ścieżki względne w archiwum względem bieżącego katalogu roboczego.Joerg Schillings
star
ma opcję diff , która jest w stanie porównać pliki w archiwum tar z ich oryginałem. Możesz określić, co należy uznać za różnicę.Zauważ, że wspomniano,
testfile
że ma on inny rozmiar i dane. Gdybym nie wykluczył czasów (w tym czasu dostępu!), Podałby również czas dostępu, a także listę wszystkich plików, których czasy zmieniły się, patrząc na nie.Od upadku BerliOS
star
można znaleźć na sourceforge . Jest bardzo przenośny i kompiluje się bezboleśnie w większości systemów unixoidowych i podobnych do unixoidów.źródło
schilytools
pakiecie źródłowym.