Ostatnio podczas kopiowania dużego pliku ( Instalka sytemu OS X Mavericks ) na zewnętrzny dysk ( FAT32 ) z uwagi na wielkość pliku, nie można było go skopiować ( ograniczenie systemu plików FAT32 ). A że akurat pod ręką nie miałem innego, trzeba było szybko podzielić sobie ten plik na mniejsze kawałki. W tym wypadku wykorzystałem konsolowy programik zip i unzip.
Oczywiście przykłady działają nie tylko na komputerach Macintosh z OS X ale na systemach Linux / UNIX itp.
Zwykła kompresja/dekompresja pliku dla przypomnienia 🙂
Prosta kompresja ZIP do pliku archiwum.zip katalogu skompresuj_mnie
Opcje:
-r : kompresuje pliki włączając w to podkatalogi ( rekursywnie )
-X : nie bierze pod uwagę plików niewidocznych typu: .Spotlight-V100, .DS_Store itp.
-9 : stopień kompresji ( 0 – brak kompresji, 9 – maksymalna kompresja )
Dekompresja:
Dzielenie pliku na mniejsze kawałki
Opcja -s z parametrem liczbowym – w naszym przypadku 1024m oznacza, że pliki mają być dzielone na porcje 1024MB. Literka m na końcu liczby oznacza oczywiście MegaBajty.
Scalanie podzielonych plików całość
Tutaj sprawa ze scalaniem plików w jedność nieco się komplikuje, gdyż unzip nie ma takiej opcji aby dekompresował plik po pliku ze scalaniem.
Ale są inne możliwości, pierwsza z nich to wykorzystanie naszego programu zip do scalenia plików w jeden plik zip:
Gdzie archiwum.zip to pierwszy podzielony plik, kolejne pliki mają końcówki z1, z2, itd.
Druga opcja, polega na scaleniu ( konkatenacji ) plików za pomocą cat:
Teraz mając scalone archiwum, możemy już normalnie zdekompresować plik, tak jak to pokazałem na samym początku tego postu.