Kompres file dari terminal OS X?

47

Di Finder, ada kemampuan luar biasa untuk mengeklik kanan pada file atau direktori, memilih kompres dari drop-down, dan berakhir dengan file zip.

Apakah mungkin melakukan hal yang sama dari terminal?

William Jockusch
sumber

Jawaban:

63

Itu disebut zip.

Ini menambahkan file fileke arsip file.zip:

zip file.zip file

Tentu saja, untuk menambahkan lebih banyak file, cukup tambahkan sebagai argumen pada perintah. Lihat man zipopsi lainnya.

Seringkali, Anda ingin melewatkan termasuk .DS_Storefile - file sial itu , misalnya mengompresi seluruh folder foldermenjadi folder.zip:

zip -vr folder.zip folder/ -x "*.DS_Store"
slhck
sumber
whats the (1) setelah kata zip?
Jacob Raccuia
@JacobRaccuia Lihat superuser.com/questions/297702/…
slhck
Apakah itu zip lama GNU biasa yang datang dengan OS X?
mwfearnley
@ mwfearnley Di bawah macOS, ini Copyright (c) 1990-2008 Info-ZIP. developer.apple.com/legacy/library/documentation/Darwin/…
slhck
tautan ke halaman manual rusak .. gunakan saja man zippada baris perintah
commonpike
15

Untuk mengkompres file persis seperti perintah Finder akan mengkompresnya gunakan:

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

Lihat man dittodetailnya:

 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
sumber
3
Ini adalah jawaban terbaik karena menghasilkan zip yang identik, sedangkan zip atau tar CLI berbeda dan sedikit lebih kecil. Pertanyaan serupa dengan jawaban yang sama: stackoverflow.com/questions/10738505/…
Henry Blyth
5

Ada tar (1) dan gzip (atau bzip2 atau lzma). Tar digunakan untuk menggulung sejumlah file ke dalam satu arsip, sedangkan satu dari tiga lainnya digunakan untuk mengompresnya.

Pada baris perintah, Anda akan memanggil tar dengan beberapa opsi untuk membuat arsip dan gzip.

Misalnya:

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

Ini akan -c membuat ag- z arsip ipped bernama -f ile dari direktori -C hange-folder-ke dan akan berisi semua file dalam folder Unduhan. Opsi -C adalah opsional dan argumen file sumber akan diambil dari folder saat ini jika dihilangkan.

Untuk referensi: tutorial tar

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