Dateien vom OS X-Terminal komprimieren?

50

Im Finder gibt es diese wunderbare Möglichkeit, mit der rechten Maustaste auf eine Datei oder ein Verzeichnis zu klicken, aus dem Dropdown-Menü die Option Komprimieren auszuwählen und eine komprimierte Datei zu erhalten.

Ist es möglich, dasselbe vom Terminal aus zu tun?

William Jockusch
quelle

Antworten:

69

Es heißt zip.

Dies fügt die Datei filedem Archiv hinzu file.zip:

zip file.zip file

Um weitere Dateien hinzuzufügen, müssen Sie diese dem Befehl als Argumente hinzufügen. Schauen Sie sich man zipfür weitere Optionen.

Häufig möchten Sie diese lästigen .DS_StoreDateien überspringen , z. B. den gesamten Ordner komprimieren folderin folder.zip:

zip -vr folder.zip folder/ -x "*.DS_Store"
slhck
quelle
Was ist die (1) nach dem Wort zip?
Jacob Raccuia
@JacobRaccuia See superuser.com/questions/297702/...
slhck
Ist es die einfache alte GNU-Zip, die mit OS X geliefert wird?
Mwfearnley
@mwfearnley Unter macOS ist es Copyright (c) 1990-2008 Info-ZIP. developer.apple.com/legacy/library/documentation/Darwin/…
slhck
link zur manpage kaputt .. einfach man zipauf der
befehlszeile
15

Um die Dateien genau so zu komprimieren, wie der Finder-Befehl sie komprimieren würde, verwenden Sie:

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

Sehen man ditto für Details:

 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
quelle
3
Dies ist die beste Antwort, da sie einen identischen Reißverschluss ergibt, während der CLI-Reißverschluss oder Teer unterschiedlich und etwas kleiner ist. Eine ähnliche Frage mit der gleichen Antwort: stackoverflow.com/questions/10738505/…
Henry Blyth
5

Es gibt tar (1) und gzip (oder bzip2 oder lzma). Mit Tar wird eine Anzahl von Dateien in ein Archiv gerollt, während die anderen drei Dateien zum Komprimieren verwendet werden.

In einer Befehlszeile rufen Sie tar mit einigen Optionen auf, um ein Archiv zu erstellen und es mit gzip zu versehen.

Z.B:

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

Dieses willl -c reate ag -z ipped Archiv mit dem Namen -f ile from the C hange-Ordner-toVerzeichnis und alle Dateien in den Ordner Downloads enthalten. Die Option -C ist optional und die Argumente der Quelldatei werden aus dem aktuellen Ordner übernommen, wenn sie weggelassen werden.

Als Referenz: tar Tutorial

Ярослав Рахматуллин
quelle