Kompresować pliki z terminala OS X?

50

W Finderze istnieje wspaniała możliwość kliknięcia prawym przyciskiem myszy pliku lub katalogu, wybrania kompresji z menu rozwijanego i uzyskania skompresowanego pliku.

Czy można zrobić to samo z terminalu?

William Jockusch
źródło

Odpowiedzi:

69

To się nazywa zip.

Spowoduje to dodanie pliku filedo archiwum file.zip:

zip file.zip file

Oczywiście, aby dodać więcej plików, po prostu dodaj je jako argumenty do polecenia. Sprawdź man zipwięcej opcji.

Często będziesz chciał pominąć te nieznośne .DS_Storepliki, na przykład kompresując cały folder folderdo folder.zip:

zip -vr folder.zip folder/ -x "*.DS_Store"
slhck
źródło
co to jest (1) po słowie zip?
Jacob Raccuia
@JacobRaccuia Zobacz superuser.com/questions/297702/…
slhck
Czy to zwykły stary GNU zip dostarczany z systemem OS X?
mwfearnley,
@mwfearnley Pod macOS to jest Copyright (c) 1990-2008 Info-ZIP. developer.apple.com/legacy/library/documentation/Darwin/…
slhck 11.11.17
zepsuł się link do strony podręcznika .. po prostu użyj man zipw wierszu poleceń
commonpike
15

Aby skompresować pliki dokładnie tak, jak skompresowałoby je polecenie Findera, użyj:

ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip

Zobacz man dittoszczegóły:

 The command:
       ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip
 will create a PKZip archive similarly to the Finder's Compress function-
 ality.
qqbenq
źródło
3
To najlepsza odpowiedź, ponieważ tworzy identyczny zamek błyskawiczny, podczas gdy zamek błyskawiczny lub smoła CLI jest inny i nieco mniejszy. Podobne pytanie z tą samą odpowiedzią: stackoverflow.com/questions/10738505/...
Henry Blyth
5

Istnieje tar (1) i gzip (lub bzip2 lub lzma). Tar jest używany do zwijania wielu plików do jednego archiwum, podczas gdy jeden z pozostałych trzech służy do kompresji.

W wierszu poleceń wywołujesz tar z kilkoma opcjami, aby utworzyć archiwum i gzip.

Na przykład:

tar -c -z -f myarchive.tar.gz -C /home/username Downloads

To -c utworzy archiwum ag -z ipped o nazwie -f ile z katalogu -C hange-folder-to i będzie zawierać wszystkie pliki w folderze Pobrane. Opcja -C jest opcjonalna, a argumenty pliku źródłowego zostaną pobrane z bieżącego folderu, jeśli zostaną pominięte.

W celach informacyjnych: samouczek tar

Ярослав Рахматуллин
źródło