Otrzymałem ogromny plik .tar.gz od klienta, który zawiera około 800 MB plików graficznych (po nieskompresowaniu). Ftp naszej firmy hostingowej działa bardzo wolno, więc wyodrębnianie wszystkich plików lokalnie i wysyłanie ich przez ftp nie jest praktyczne. Byłem w stanie ftp pliku .tar.gz do naszej witryny hostingowej, ale kiedy ssh do mojego katalogu i spróbuj użyć rozpakowania, pojawia się ten błąd:
[esthers@clients locations]$ unzip community_images.tar.gz
Archive: community_images.tar.gz
End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.
note: community_images.tar.gz may be a plain executable, not an archive
unzip: cannot find zipfile directory in one of community_images.tar.gz or community_images.tar.gz.zip, and cannot find community_images.tar.gz.ZIP, period.
Jakiego polecenia należy użyć, aby wyodrębnić wszystkie pliki z pliku .tar.gz?
tar -xf
sugestia byłaby świetną dodatkową odpowiedzią.man tar
; poszukaj-C
opcji. A może sprawdź drugą odpowiedź 😉Jeśli chcesz, aby pliki zostały wyodrębnione do określonego miejsca docelowego, możesz dodać. Najpierw utwórz katalog, w tym przypadku: ~ / Pictures / Community
-C /destination/path/
Przykład:
Można łatwo zapamiętać, jeśli wziąć pod uwagę, mówiąc tar e X pokarmowy F Ile
Uwaga: Pamiętaj, że możesz wyszukiwać wewnątrz stron podręcznika z
?
+ perspektywie szukać, a następnien
iN
, aby przejść do następnego lub poprzedniego wystąpienia tego słowa, którego szukasz.źródło
ps
).--directory="/home/emmys/Pictures/Community/"
(co moim zdaniem jest łatwiejsze do zapamiętania niż-C
).W pewnym momencie
tar
został zaktualizowany do automatycznego dekompresji. Teraz potrzebujesz tylko:Obowiązuje to samo wyjaśnienie:
f
: musi to być ostatnia flaga polecenia, a tar f ile musi nastąpić natychmiast po. Podaje tar nazwę i ścieżkę skompresowanego pliku.x
: e x traktuje pliki.Zwróć uwagę na brak łącznika dla flag poleceń. Wynika to z faktu, że większość wersji tar zezwala zarówno na opcje w stylu GNU, jak i BSD (upraszczając, GNU wymaga łącznika, BSD nie).
źródło
Zapamiętywanie wszystkich flag
tar
może być żmudne. Obowiązkowe XKCD:Dlatego stworzyłem własny skrypt w Pythonie, aby to zrobić. Szybki, brudny,
cp
podobny do użycia:Użyj go w ten sposób:
Zobacz także podobny skrypt do rozpakowywania archiwów zip .
źródło
-caf
do tworzenia na podstawie nazwy pliku i-xf
do wyodrębniania (AFAIK działa na każdym typie tar).tar xf <file>
?Szybka odpowiedź:
[ UWAGA ]:
-v
Pełna lista przetworzonych plików.-z
Przefiltruj archiwum przez gzip.-f
Użyj pliku archiwum lub ARCHIWUM urządzenia.-x
Wyodrębnij pliki z archiwum.-j
bzip2.-xf
archive.tar # Wyodrębnij wszystkie pliki zarchive.tar
.źródło
Jeśli nie możesz wyodrębnić
.tar.gz
pliku za pomocąSpróbuj wyodrębnić za pomocą
źródło
Możesz to zrobić również w pierwszym kroku:
Następnie masz plik: community_images.tar
Drugi krok to:
Plik * .tar zostanie wyodrębniony.
źródło
tar xvf file.tar.gz
Każda zdalnie nowoczesna wersja tar powinna automatycznie wykrywać, że archiwum jest gzipowane i dodać „z” dla ciebie.
źródło