CodeGym /Các khóa học /Docker SELF /Đóng gói và nén tệp: lệnh `tar`, `gzip`, `zip`

Đóng gói và nén tệp: lệnh `tar`, `gzip`, `zip`

Docker SELF
Mức độ , Bài học
Có sẵn

Đóng gói và nén tệp: lệnh tar, gzip, zip

1. Khái niệm lưu trữ và nén

Lưu trữ là gì và tại sao cần nó?

Hãy tưởng tượng một cái tủ đầy sách. Để lưu giữ chúng gọn gàng, bạn có thể cho chúng vào một cái hộp (lưu trữ) và buộc dây để lưu trữ chặt hơn (nén). Trong thế giới máy tính, lưu trữ là quá trình gộp nhiều tệp thành một container (lưu trữ), còn nén là giảm kích thước của nó.

Nhưng tại sao cần điều đó? Dưới đây là vài ví dụ:

  • Lưu giữ dữ liệu: Bằng cách đóng gói các tệp vào một lưu trữ, bạn có thể dễ dàng di chuyển hoặc sao chép chúng như một tệp duy nhất.
  • Truyền dữ liệu: Nhờ nén, dữ liệu chiếm ít không gian hơn, giúp tăng tốc độ truyền qua mạng.
  • Sao lưu dự phòng: Lưu trữ cho phép bảo vệ dữ liệu và làm cho việc khôi phục trở nên dễ dàng hơn.

À này, bạn đã bao giờ thử gửi 1000 tệp qua email chưa? Không lưu trữ thì chẳng khác gì tra tấn đâu!


2. Lệnh tar: tạo và làm việc với các file lưu trữ

Tar là gì?

tar là một công cụ để lưu trữ file trên Linux. Bản thân tar không nén file, mà chỉ kết hợp chúng thành một file duy nhất. Nếu bạn muốn nén file, bạn có thể sử dụng tar kết hợp với các công cụ nén (gzip, bzip2, v.v.).

Cú pháp chung

tar [tùy chọn] <lưu trữ> <file/thư mục>

Các tùy chọn chính

  • -c: tạo một file lưu trữ mới.
  • -v: hiển thị chi tiết các thao tác (sẽ thông báo tất cả các file được thêm vào).
  • -f: đặt tên file lưu trữ.
  • -x: giải nén file từ lưu trữ.
  • -t: hiển thị nội dung của lưu trữ.

Ví dụ sử dụng

1. Tạo file lưu trữ

tar -cvf archive.tar file1.txt file2.txt
  • Tạo file lưu trữ archive.tar từ hai file file1.txtfile2.txt.
  • -c: tạo một file lưu trữ mới.
  • -v: hiển thị quá trình thêm file vào terminal.
  • -f: chỉ định tên file lưu trữ là archive.tar.

2. Lưu trữ một thư mục

tar -cvf project.tar /home/user/project
  • Tạo file lưu trữ project.tar, bao gồm toàn bộ thư mục /home/user/project.

3. Giải nén lưu trữ

tar -xvf archive.tar
  • Giải nén file lưu trữ archive.tar vào thư mục hiện tại.

4. Xem nội dung lưu trữ

tar -tvf archive.tar
  • Hiển thị danh sách các file và thư mục trong lưu trữ.

3. Nén với gzip

gzip làm gì?

Nếu tar là cái hộp, thì gzip là túi chân không giúp làm giảm kích thước của nó. gzip giảm dữ liệu bằng cách sử dụng các thuật toán nén, lý tưởng để tiết kiệm không gian.

Cú pháp chung

gzip [tùy chọn] <file>

Ví dụ sử dụng

1. Nén file

gzip file1.txt
  • Sau khi chạy, lệnh sẽ đổi file file1.txt thành file1.txt.gz.

2. Giải nén file

gunzip file1.txt.gz
  • Khôi phục lại file gốc file1.txt.

3. Lưu trữ và nén bằng targzip

tar -czvf archive.tar.gz file1.txt file2.txt
  • Tạo lưu trữ archive.tar.gz, gộp và nén các file file1.txtfile2.txt.

4. Giải nén lưu trữ nén

tar -xzvf archive.tar.gz
  • Giải nén và trích xuất nội dung của lưu trữ archive.tar.gz.

4. Công cụ zip để tạo lưu trữ nén

Khác biệt so với tar là gì?

Khác với tar, zip ngay lập tức tạo tệp lưu trữ nén, mặc định có thể sử dụng trong Windows và các hệ thống khác.

Cú pháp chung

zip [tùy chọn] <lưu trữ> <tệp/thư mục>

Ví dụ sử dụng

1. Tạo lưu trữ zip

zip archive.zip file1.txt file2.txt
  • Tạo lưu trữ archive.zip, bao gồm các tệp file1.txtfile2.txt.

2. Lưu trữ thư mục

zip -r project.zip /home/user/project
  • Tạo lưu trữ project.zip, bao gồm toàn bộ thư mục /home/user/project.
  • -r: thêm tệp và thư mục đệ quy.

3. Giải nén lưu trữ zip

unzip archive.zip
  • Giải nén nội dung của lưu trữ archive.zip.

5. Sự khác biệt giữa tar, gzipzip

Util Đóng gói Nén Cách tiếp cận Ứng dụng chính
tar Gom nhóm file Kết hợp các file vào một gói mà không nén
gzip Nén Giảm kích thước file riêng lẻ hoặc gói
zip All-in-one Tạo gói di chuyển được

6. Bài tập thực hành

  1. Tạo lưu trữ backup.tar từ nội dung thư mục /home/user/documents.
  2. Nén lưu trữ bằng gzip, để được backup.tar.gz.
  3. Giải nén lưu trữ vào một thư mục khác, ví dụ: /tmp/backup.
  4. Tạo zip-lưu trữ docs.zip từ các file doc1.txtdoc2.txt.
  5. Thử trích xuất nội dung của docs.zip bằng lệnh unzip.

7. Lỗi thường gặp và điểm đặc biệt

1. Lỗi "Permission denied" Nếu bạn cố gắng lưu trữ các file mà bạn không có quyền truy cập, một thông báo lỗi sẽ xuất hiện. Hãy chạy lệnh với quyền quản trị: sudo.

2. Lẫn lộn với các tùy chọn? Các tùy chọn của tar đôi khi có thể gây nhầm lẫn. Đừng quên rằng thứ tự rất quan trọng: ví dụ, trước tiên bạn cần chỉ định hành động -c hoặc -x, sau đó mới đến các tùy chọn khác.

3. File nén không mở được Nếu bạn vô tình thêm nén vào file đã nén trước đó (ví dụ: gzip archive.tar.gz), đừng lo. Chỉ cần giải nén hai lần.

4. Lưu trữ quá lớn Khi sử dụng lệnh zip, loại bỏ các file tạm thời hoặc bộ nhớ đệm để giảm kích thước lưu trữ: zip -r archive.zip folder -x "*.tmp".

5. Vấn đề tương thích Nếu bạn cần chuyển file cho người dùng Windows, hãy chọn zip, vì nó được hỗ trợ tốt hơn trên hệ điều hành này.

Vậy là chúng ta đã học được cách lưu trữ và nén dữ liệu trong Linux. Các công cụ này sẽ rất hữu ích để làm việc với dữ liệu lớn, để truyền tải hoặc bảo vệ khỏi mất mát. Hãy chuyển sang chủ đề tiếp theo — kiến thức sẽ ngày càng tích lũy! 🎉

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION