Câu trả lời:
Tar là công cụ lưu trữ và gzip là công cụ nén. Để nén một thư mục đầy đủ, trước tiên bạn cần lưu trữ nó vào một tệp duy nhất. Đó là những gì công việc là tar. và sau đó bạn nén tệp lưu trữ. Bạn có thể thực hiện cả hai tác vụ trong một lệnh tar duy nhất với tùy chọn thích hợp.
tar -czf thư mục_name.tar.gz thư mục_name /
Nếu bạn không muốn tạo một kho lưu trữ tar (có thể bạn chỉ muốn nén một tệp duy nhất), thì bạn có thể sử dụng lệnh gzip trực tiếp.
tập tin gzip
Nó sẽ tạo một tệp nén có tên file.txt.gz
-czf
sau tar
là gì: c
biểu thị rằng bạn muốn tạo một kho lưu trữ tar, z
áp dụng gzip
trên kho lưu trữ tar trung gian và f
dành cho tên tệp cuối cùng tiếp theo folder_name.tar.gz
.
gzip file.txt
thay thế tệp gốc.
gzip -k file.txt
để "giữ" (không xóa) tệp đầu vào.
Nếu ai đó vẫn đang tìm thấy câu hỏi này khi tìm kiếm "gzip trong Mac", tôi đã viết một hướng dẫn rằng nó có thể hữu ích cho người khác. Nó đi từ đây:
Lệnh cơ bản nhất sẽ nén tệp filename.ext
và sau đó thay thế nó filename.ext.gz
trong cùng thư mục.
gzip filename.ext
Nếu bạn không muốn mất tệp gốc của mình, thì bạn cần chuyển đầu ra của gzip -c
tệp.
gzip -c filename.ext > anotherfile.gz
Chúng tôi cũng có thể nén từ đầu vào tiêu chuẩn, vì vậy chúng tôi có thể nén đầu ra của các lệnh khác.
cat filename.ext | gzip > anotherfile.gz
OS X cũng đi kèm với các lệnh compress
và uncompress
. Họ tạo ra một gzip "thông minh hơn", vì nó không nén tệp nếu nó phát triển sau quá trình nén. Lệnh sau thay thế filename.ext
với filename.ext.Z
trong cùng thư mục.
compress filename.ext
Để khôi phục tệp về trạng thái tự nhiên không nén, bạn có thể sử dụng gzip hoặc các trình bao bọc khác. Chế độ giải nén của gzip được gọi với -d
cờ. Chế độ này sẽ thay thế các tập tin filename.ext.gz
với filename.ext
trong cùng thư mục. Cũng có một phím tắt được gọi là gunzip
sẽ làm tương tự.
gzip -d filename.ext.gz
gunzip filename.ext.gz
Chúng ta cũng có thể dẫn tập tin giải nén vào đầu ra tiêu chuẩn để lưu nó vào tập tin khác.
gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile
Một cách nhanh chóng khác để đọc nội dung của một gzip đến đầu ra tiêu chuẩn là zcat
, về cơ bản giống như gọi gzip -cd
nhưng bạn có thể gọi nhiều tệp và nối chúng giống như cat
lệnh nối các tệp văn bản. Hạn chế duy nhất là các tệp của bạn cần được hậu tố với .Z
hậu tố để nó hoạt động ...
zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z
Nhưng đừng sợ! zcat
Nó vẫn hữu ích, bởi vì nó có thể giải nén từ đầu ra tiêu chuẩn. Vì vậy, về cơ bản bạn có thể dẫn các tệp của bạn đến zcat để giải nén chúng trên cửa sổ terminal.
cat filename.ext.gz | zcat
Điều này rất hữu ích nếu bạn cần kiểm tra nội dung của tệp thật nhanh và thậm chí bạn có thể lưu đầu ra của zcat vào một tệp, thật dễ dàng.
cat filename.ext.gz | zcat > anotherfile
Trình uncompress
bao bọc hoạt động như thế gzip -cd
nhưng nó tìm các tệp có phần mở rộng .Z để thay thế chúng trong thư mục hiện tại, vì vậy bạn chỉ cần chỉ định tên tệp bạn muốn khôi phục, nhưng không sao nếu bạn gọi nó bằng phần mở rộng .Z, như chương trình sẽ bỏ qua nó.
compress filename.ext
uncompress filename.ext
Tôi hy vọng bạn tìm thấy hướng dẫn của tôi hữu ích :)
Vâng, bạn đã làm tar thư mục đầu tiên. Lệnh tar có thể làm cả hai:
tar -czf archiv.tar.gz mydir/
trích xuất lưu trữ của bạn:
tar -xzf archiv.tar.gz
Để thêm vào câu trả lời của @taskinoor: nếu bạn sử dụng phiên bản tệp duy nhất, aka
gzip file.txt
lưu ý rằng tệp gốc (file.txt) sẽ bị xóa và bạn sẽ chỉ có file.txt.gz
Tôi sẽ đặt điều này dưới dạng nhận xét nhưng không có đủ nghiệp lực để làm điều đó: =)
gzip --keep file.txt
sẽ giữ bản gốc và tạo file.txt.gz
. Xem gzip --help
.
Vâng cái này đúng rồi. gzip
chỉ có thể nén một tập tin. tar
mã hóa nội dung thư mục thành một file duy nhất, mà có thể được nén hơn nữa sử dụng gzip
, bzip2
, lzma
hoặc bất cứ điều gì khác.
objective-c
nhưng bạn đang hỏi về dòng lệnh.