2013-04-01 19 views
92

Chcę wyodrębnić archiwum o nazwie filename.tar.gz.Jak wyodrębnić plik filename.tar.gz

Używanie tar -xzvf filename.tar.gz nie wyodrębnia pliku. ona daje ten błąd:

gzip: stdin: not in gzip format 
tar: Child returned status 1 
tar: Error exit delayed from previous errors 
+6

'plik nazwa pliku.tar.gz' "plik" pokaże ci format (jeśli jest zainstalowany), jeśli jest zip, spróbuj 'unzip' lub zainstaluj ogólny pakiet rozpakowujący, taki jak' unp'. – pce

+1

Błąd oznacza, że ​​plik nie jest plikiem 'gzip', chociaż rozszerzenie tak mówi. Wypróbuj 'unzip filename.tar.gz' i' gunzip filename.tar.gz' i zobacz, jakie są dane wyjściowe. –

+0

Skąd masz ten plik zip? –

Odpowiedz

138

Jeśli file filename.tar.gz wyświetli ten komunikat: archiwum tar POSIX, archiwum to tar, a nie archiwum GZip.

rozpakować tar bez z to do zgzipowanego (skompresowany), tylko:

mv filename.tar.gz filename.tar # optional 
tar xvf filename.tar 

Lub spróbuj rodzajowe Unpacker jak unp (https://packages.qa.debian.org/u/unp.html), skrypt do rozpakowywania szeroką gamę formatów archiwów.

określić typ pliku:

$ file ~/Downloads/filename.tbz2 
/User/Name/Downloads/filename.tbz2: bzip2 compressed data, block size = 400k 
+5

Dzięki @pce za wsparcie. twoja odpowiedź jest poprawna. 'tar xvf filename.tar.gz'. Mi to pasuje. – Kabir

+0

tar xvf hadoop-2.7.2.tar smar: Ceci ne zapisz pas žne archiwum typu de «sma» tar: Proszę o kod na zapytanie o przyczynę précédentes –

10

O ile mogę powiedzieć, komenda jest poprawna, zakładając, że plik wejściowy jest prawidłowy spakowane plik tar. Twoje wyniki mówią, że tak nie jest. Jeśli plik został pobrany z Internetu, prawdopodobnie nie dostałeś całego pliku, spróbuj ponownie.

Bez większej wiedzy na temat źródła Twojego pliku, nikt tutaj nie będzie w stanie dać ci konkretnego rozwiązania, tylko wykształconych domysłów.

+5

To sprawiło, że rzuciłem okiem na pobierany plik. To było z Apache, a adres URL kończy się na .tar.gz, więc po prostu go skopiuję i wklejałem. Jednak ten link nie był związany z archiwum, dotyczył strony z listą serwerów lustrzanych. Przez 30 minut próbowałem usunąć stronę html. Wtf apache. – eddiemoya

+1

Miałem ten problem, dwukrotnie sprawdzam, czy twój plik ma prawidłowy rozmiar, również użyj sumy kontrolnej, jeśli to możliwe. – kiwicomb123

-1

tar.gz plik jest wewnątrz pliku tar gzip, więc 1-cia trzeba rozpakować plik gzip z gunzip -d filename.tar.gz, a następnie użyć go do tar rozpakować. Jednakże, ponieważ gunzip mówi, że nie ma formatu gzip, możesz zobaczyć, jaki to jest format z file filename.tar.gz i użyć odpowiedniego programu, aby go otworzyć.

0

Sprawdź, czy plik jest kompletny. Ten komunikat o błędzie może wystąpić, jeśli tylko częściowo pobrano plik lub wystąpiły poważne problemy. Sprawdź sumę MD5.

3

Zdarza się to czasami w przypadku plików pobranych za pomocą polecenia "wget". Zaledwie 10 minut temu próbowałem zainstalować coś na serwerze z ekranu poleceń i to samo się stało. Jako rozwiązanie, właśnie pobrałem plik .tar.gz do mojego komputera z sieci, a następnie przesłałem go na serwer za pośrednictwem FTP. Następnie polecenie "tar" działało zgodnie z oczekiwaniami.

+2

hmm, sprawdź dziennik wget, może byłeś przekierowanie lub coś – chrismarx

1

Wewnętrznie tar xcvf <filename> wezwie binarne gzip ze zmiennej środowiskowej PATH do dekompresji plików w archiwum tar. Czasami narzędzia innych firm używają niestandardowego pliku binarnego o nazwie gzip, który nie jest zgodny z plikiem binarnym tar. Warto sprawdzić plik binarny gzip w swoim PATH za pomocą which gzip i upewnić się, że wybrano prawidłowy plik binarny gzip.

0

mam ten sam błąd wyniku polecenia:

file hadoop-2.7.2.tar.gz 

jest hadoop-2.7.2.tar.gz: HTML document, ASCII text

powodem, że plik nie jest w formacie gzip z powodu problemu w pobrania lub inny.

Powiązane problemy