Możliwa duplikat:
zgrywanie zestawu katalogów i tworzenie skompresowanego pliku tar
W tym poście opisano, jak rozpakować każdy plik osobno w strukturze katalogów. Muszę jednak zrobić coś nieco innego. Muszę utworzyć jeden duży plik gzip dla wszystkich plików w określonym katalogu. Potrzebuję też móc określić wyjściową nazwę pliku skompresowanego (np. Files.gz) i zastąpić stary plik skompresowanego pliku, jeśli taki już istnieje.
gzip
ze swej natury kompresuje tylko jeden plik. Aby umieścić wiele plików w jednym pliku w celu późniejszego zgzipowania, użyjtar
.Odpowiedzi:
wszystko w folderToCompress przejdzie do nazwa_kompresu
Edycja: Po przejrzeniu i komentarzach zdałem sobie sprawę, że ludzie mogą się mylić z nazwa_pliku_pliku bez rozszerzenia. Jeśli chcesz, możesz użyć rozszerzenia .tar.gz (zgodnie z sugestią) z nazwa_kompresu
źródło
compressFileName
więc zawiera.tar.gz
rozszerzenie lub doprowadzisz wszystkich do szaleństwa.tar -zcvf two-dirs.tar.gz dir-one dir-two
Utworzy archiwum zawierające dwa katalogi.*
kompresowaniem wszystkiego w bieżącymtar -zcvf all.tar.gz *
istnieje wiele metod kompresji, które działają rekurencyjnie w wierszu poleceń i dobrze jest wiedzieć, kto jest końcowym odbiorcą.
tzn. jeśli ma zostać wysłany do kogoś z systemem Windows, prawdopodobnie najlepiej będzie zip:
dla innych użytkowników Linuksa lub twoja własna tar jest świetna
Trzeba uważać na smołę i sposób, w jaki rzeczy są smołowane / wyodrębniane, na przykład, jeśli uruchamiam
/ home / moja nazwa użytkownika
spowoduje to utworzenie / home / myusername / etc / passwd
niepewny, czy wszystkie wersje tar to robią:
źródło
Post @amitchhajer działa dla GNU tar. Jeśli ktoś znajdzie ten post i potrzebuje go do pracy w
GNU
systemie NON , może to zrobić:Aby rozwinąć archiwum:
źródło
pigz
który jest szybszy, ponieważ może lepiej wykorzystać procesor (wielowątkowa implementacja zip).