Polecenie „gzip” folderu?

66

Jestem nowy w Macu. Jak utworzyć gzip folderu w Mac OS X? Kilka osób powiedziało mi, że jeśli chcesz utworzyć gzip folderu, powinieneś go najpierw „tar”, a następnie „gzip”. Czy to jest poprawne?

thndrkiss
źródło
1
To nie jest pytanie programistyczne? Twój post jest otagowany, objective-cale pytasz o wiersz poleceń.
rakuo15

Odpowiedzi:

130

Tar to narzędzie do archiwizacji, a gzip to narzędzie do kompresji. Aby skompresować pełny katalog, najpierw musisz zarchiwizować go w jednym pliku. Właśnie tym zadaniem jest smoła. a następnie kompresujesz zarchiwizowany plik. Możesz wykonać oba zadania jednym poleceniem tar z odpowiednią opcją.

tar -czf nazwa_folderu.tar.gz nazwa_folderu /

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

gzip file.txt

Stworzy skompresowany plik o nazwie file.txt.gz

taskinoor
źródło
30
Warto wspomnieć, jakie opcje -czfpo tardotyczą: cwskazuje, że chcesz utworzyć archiwum tar, zstosuje się gzipna pośredniej archiwum tar, a fto dla późniejszego końcowego nazwy pliku folder_name.tar.gz.
fideli
13
Ostrzeżenie: gzip file.txtzastępuje oryginalny plik.
Zoltán
6
@ Zoltán Służy gzip -k file.txtdo „zatrzymywania” (nie usuwania) pliku wejściowego.
thohl
13

Jeśli ktoś nadal znajduje to pytanie podczas wyszukiwania „gzip na Macu”, napisałem przewodnik, że może być przydatny dla kogoś innego. Oto jest:

Ściskanie

Najbardziej podstawowe polecenie skompresuje plik, filename.exta następnie zastąpi go filename.ext.gzw tym samym katalogu.

gzip filename.ext

Jeśli nie chcesz utracić oryginalnego pliku, musisz przesłać dane wyjściowe gzip -cdo pliku.

gzip -c filename.ext > anotherfile.gz

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

cat filename.ext | gzip > anotherfile.gz

OS X jest również wyposażony w polecenia compressi uncompress. Tworzą „mądrzejszy” gzip, ponieważ nie kompresuje pliku, jeśli powiększy się po procesie kompresji. Następujące polecenie zastępuje filename.extsię filename.ext.Zw tym samym katalogu.

compress filename.ext

Dekompresowanie

Aby przywrócić plik do stanu nieskompresowanego, możesz użyć gzip lub innego opakowania. Tryb dekompresji gzip jest wywoływany z -dflagą. Ten tryb będzie zastąpić plik filename.ext.gzze filename.extw tym samym katalogu. Istnieje także skrót gunzip, który zrobi to samo.

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

Możemy również przesłać zdekompresowany plik do standardowego wyjścia, aby zapisać go w innym pliku.

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

Innym szybkim sposobem odczytywania zawartości gzip na standardowe wyjście jest to zcat, że jest to w zasadzie to samo, co wywoływanie, gzip -cdale można wywoływać wiele plików i łączyć je w taki sam sposób, jak catpolecenie konkatowania plików tekstowych. Jedyną wadą jest to, że pliki muszą być wyposażone w .Zsufiks, aby działał ...

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

Ale nie bój się! zcatnadal jest przydatny, ponieważ może dekompresować ze standardowego wyjścia. Możesz więc w zasadzie potokować swoje pliki do Zcat, aby rozpakować je w oknie terminala.

cat filename.ext.gz | zcat

Jest to bardzo przydatne, jeśli chcesz naprawdę szybko sprawdzić zawartość pliku, a nawet zapisać wynik programu zcat w pliku, równie łatwo.

cat filename.ext.gz | zcat > anotherfile

uncompressWrapper działa podobnie gzip -cd, ale wygląda na pliki z rozszerzeniem .Z zastąpić je w bieżącym katalogu, więc trzeba tylko podać nazwę pliku, który chcesz przywrócić, ale to jest w porządku, jeśli nazwać to z rozszerzeniem .z, jak program zignoruje to.

compress filename.ext
uncompress filename.ext

Mam nadzieję, że mój przewodnik okaże się przydatny :)

Pablo Albornoz
źródło
4

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

folder tar czvf compressed.tar.gz
jcubic
źródło
3

Tak, najpierw musisz spakować katalog. Polecenie tar może wykonywać zarówno:

tar -czf archiv.tar.gz mydir/

wypakuj swoje archiwum:

tar -xzf archiv.tar.gz
Do Freiera
źródło
3

Aby dodać do odpowiedzi @taskinoor: jeśli używasz wersji z jednym plikiem, alias

gzip file.txt

pamiętaj, że oryginalny plik (plik.txt) zostanie usunięty, a będziesz mieć tylko plik.txt.gz

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

Miro A.
źródło
1
gzip --keep file.txtzachowa oryginał i utworzy file.txt.gz. Zobaczyć gzip --help.
Blaise,
1

Tak, to jest poprawne. gzipmoże kompresować tylko plik. tarkoduje zawartość katalogów w jednym pliku, który można dodatkowo sprężonego za pomocą gzip, bzip2, lzmalub cokolwiek innego.

Roman Cheplyaka
źródło