2010-07-09 11:58:42 +0000 2010-07-09 11:58:42 +0000
67
67

Polecenie do 'gzip' folderu?

Jestem nowy w obsłudze wiersza poleceń Maca. Jak utworzyć gzip folderu w Mac OS X? Kilka osób powiedziało mi, że jeśli chcesz utworzyć gzip folderu, powinieneś go najpierw “tarować”, a następnie “gzipować”. Czy to jest poprawne?

Odpowiedzi (6)

132
132
132
2010-07-09 12:10:37 +0000

Tar jest narzędziem do archiwizacji, a gzip jest narzędziem do kompresji. Aby skompresować cały katalog, najpierw musisz go zarchiwizować do pojedynczego pliku. To właśnie jest zadanie tar. a następnie skompresować zarchiwizowany plik. Oba te zadania można wykonać w jednym poleceniu tar z odpowiednią opcją.

tar -czf folder\_name.tar.gz folder\_name/

Jeśli nie chcesz tworzyć archiwum tar (być może chcesz skompresować tylko pojedynczy plik), możesz użyć bezpośrednio polecenia gzip.

gzip file.txt

Spowoduje to utworzenie skompresowanego pliku o nazwie plik.txt.gz

14
14
14
2015-03-25 02:35:06 +0000

Jeśli ktoś wciąż znajduje to pytanie podczas wyszukiwania “gzip w Macu”, napisałem przewodnik, który może być przydatny dla kogoś innego. Oto on:

Kompresja

Najbardziej podstawowe polecenie skompresuje plik filename.ext, a następnie zastąpi go plikiem filename.ext.gz w tym samym katalogu.

gzip filename.ext

Jeśli nie chcesz stracić oryginalnego pliku, musisz przetworzyć wyjście gzip -c do pliku.

gzip -c filename.ext > anotherfile.gz

Możemy również kompresować ze standardowego wejścia, dzięki czemu możemy kompresować dane wyjściowe innych poleceń.

cat filename.ext | gzip > anotherfile.gz

OS X posiada również komendy compress i uncompress. Dzięki nim gzip jest “mądrzejszy”, ponieważ nie kompresuje pliku, jeśli urósłby on po procesie kompresji. Poniższa komenda zastępuje filename.ext na filename.ext.Z w tym samym katalogu.

compress filename.ext

Dekompresja

Aby przywrócić plik do jego naturalnego, nieskompresowanego stanu, możesz użyć gzipa lub innego z wrapperów. Tryb dekompresji gzipa jest wywoływany z flagą -d. Tryb ten zamieni plik filename.ext.gz na filename.ext w tym samym katalogu. Istnieje również skrót o nazwie gunzip, który zrobi to samo.

gzip -d filename.ext.gz
gunzip filename.ext.gz

Możemy również przekazać zdekompresowany plik na standardowe wyjście, aby zapisać go do innego pliku.

gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile

Innym szybkim sposobem na odczytanie zawartości gzipa na standardowe wyjście jest zcat, jest to w zasadzie to samo co wywołanie gzip -cd, ale możesz wywołać wiele plików i zlecić ich konkatenację w taki sam sposób jak komenda cat konkatenuje pliki tekstowe. Jedyną wadą jest to, że twoje pliki muszą mieć przyrostek .Z, aby to zadziałało…

zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z

Ale nie bój się! zcat jest wciąż użyteczny, ponieważ potrafi dekompresować pliki z standardowego wyjścia. Możesz więc w zasadzie przekazać swoje pliki do zcata, aby zostały zdekompresowane w oknie terminala.

cat filename.ext.gz | zcat

Jest to bardzo przydatne, jeśli chcesz szybko sprawdzić zawartość pliku, możesz nawet zapisać wyjście zcat do pliku, tak samo łatwo.

cat filename.ext.gz | zcat > anotherfile

Program uncompress działa jak gzip -cd, ale szuka plików z rozszerzeniem .Z, aby zastąpić je w bieżącym katalogu, więc musisz tylko podać nazwę pliku, który chcesz przywrócić, ale nie szkodzi, jeśli wywołasz go z rozszerzeniem .Z, ponieważ program to zignoruje.

compress filename.ext
uncompress filename.ext

Mam nadzieję, że mój poradnik jest dla Ciebie przydatny :)

4
4
4
2010-07-09 12:03:04 +0000

MacOS X to Unix, więc to powinno działać (to samo działa na GNU/Linux)

tar czvf compressed.tar.gz folder
3
3
3
2010-07-09 22:42:42 +0000

Aby dodać do odpowiedzi @taskinoor: jeśli używasz wersji jednoplikowej, aka

gzip file.txt

bądź świadomy, że oryginalny plik (file.txt) zostanie usunięty i będziesz miał tylko file.txt.gz

Umieściłbym to jako komentarz, ale nie mam wystarczająco karmy, aby to zrobić :=)

3
3
3
2010-07-09 12:04:07 +0000

Tak, musisz najpierw sparsować katalog. Polecenie tar może zrobić obie rzeczy:

tar -czf archiv.tar.gz mydir/

rozpakuj swój archiv:

tar -xzf archiv.tar.gz
1
1
1
2010-07-09 12:04:43 +0000

Tak, to jest poprawne. gzip może skompresować tylko plik. tar koduje zawartość katalogu do pojedynczego pliku, który może być dalej skompresowany przy użyciu gzip, bzip2, lzma lub czegokolwiek innego.