Znalazłem pytanie Jak ustalić, czy dane są prawidłowe w pliku tar bez pliku? , ale zastanawiałem się: czy istnieje gotowe rozwiązanie wiersza poleceń?
gzip
validation
tar
gunzip
rozumieć
źródło
źródło
-v
jeśli tylko przesyłasz dane wyjściowe do/dev/null
?-z
opcja jest również niepotrzebna. Nie robi nic w trybie wyodrębniania lub wyświetlania.-z
Zdecydowanie tak jest w przypadku GNU tar - czy wiesz, czy tak jest w innych miejscach (BSD itp.)?tar.gz
? Jakieś informacje pomocnicze?prawdopodobnie możesz użyć opcji gzip -t do przetestowania integralności plików
http://linux.about.com/od/commands/l/blcmdl1_gzip.htm
z: http://unix.ittoolbox.com/groups/technical-functional/shellscript-l/how-to-test-file-integrity-of-targz-1138880
Aby sprawdzić, czy plik gzip nie jest uszkodzony:
Aby sprawdzić, czy plik tar w środku nie jest uszkodzony:
W ramach kopii zapasowej prawdopodobnie mógłbyś po prostu uruchomić to drugie polecenie i sprawdzić wartość $? potem dla wartości 0 (sukces). Jeśli problem dotyczy tar lub gzipa, $? będzie mieć wartość różną od zera.
źródło
bzip2 -t file.bz2
dla plików bz2.tar -t > /dev/null
(uwaga:t
vs-t
)?Jeśli chcesz wykonać rzeczywisty testowy rozpakowywanie pliku tar bez wypakowywania go na dysk, użyj opcji -O. Spowoduje to wyplucie ekstraktu na standardowe wyjście zamiast do systemu plików. Jeśli plik tar jest uszkodzony, proces zostanie przerwany z błędem.
Przykład nieudanego testu kulki smołowej ...
Przykład roboczy ...
źródło
> /dev/null
przykładu roboczego.Możesz również sprawdzić zawartość pliku * .tag.gz używając
pigz
(parallel gzip), aby przyspieszyć sprawdzanie archiwum:źródło
Wypróbowałem następujące polecenie i działają dobrze.
Jednak możemy stwierdzić, że te dwa polecenia są czasochłonne. Może potrzebujemy szybszego sposobu określenia nienaruszonych plików skompresowanych.
źródło
Fajną opcją jest
tar -tvvf <filePath>
dodanie linii informującej o rodzaju pliku.Przykład w prawidłowym pliku .tar:
Uszkodzony plik .tar:
źródło
To wszystko są bardzo nieoptymalne rozwiązania. Ze specyfikacji GZIP
Musi być zakodowany w jakimkolwiek języku, którego używasz.
źródło
Czasami tak, ale czasami nie. Zobaczmy przykład uszkodzonego pliku:
To pokazuje:
Nawet jeśli wykonasz
tar powiedział, że nie ma błędu:
ale plik był uszkodzony, ma teraz „Fool” zamiast „Pete”.
źródło