Cách nén và giải nén file trên Linux bằng dòng lệnh

Tóm tắt nhanh (Quick Answer)

Trên Linux, bạn có thể nén và giải nén file bằng lệnh tar hoặc zip. Ví dụ: chạy tar -czvf archive.tar.gz folder/ để nén thư mục và tar -xzvf archive.tar.gz để giải nén. Với định dạng ZIP, hãy dùng lệnh zip -r archive.zip folder/unzip archive.zip.

Khi quản trị VPS Linux, việc sao lưu mã nguồn (backup) hoặc di chuyển dữ liệu giữa các máy chủ là công việc diễn ra hàng ngày. Nắm vững các lệnh nén và giải nén qua giao diện dòng lệnh (CLI) không chỉ giúp bạn thao tác nhanh chóng mà còn tối ưu hóa đáng kể dung lượng lưu trữ và băng thông mạng.

Nội dung chính

1. Các lệnh nén và giải nén phổ biến

Dưới đây là bảng tra cứu nhanh các câu lệnh dành cho những Sysadmin cần thao tác ngay lập tức:

Định dạng Lệnh Nén (Compress) Lệnh Giải nén (Extract)
.tar.gz tar -czvf file.tar.gz folder/ tar -xzvf file.tar.gz
.tar.bz2 tar -cjvf file.tar.bz2 folder/ tar -xjvf file.tar.bz2
.zip zip -r file.zip folder/ unzip file.zip

2. TAR, GZIP và XZ hoạt động như thế nào?

Trên môi trường Windows, định dạng .zip.rar thường đảm nhiệm cả hai chức năng: gom file và nén file. Tuy nhiên, trên Linux, hai tiến trình này hoàn toàn tách biệt:

  • TAR (Tape Archive): Là công cụ dùng để gom nhiều file và thư mục lại thành một tệp duy nhất (gọi là tarball) nhưng không làm giảm dung lượng. Ví dụ, để tạo một archive thuần túy không nén, bạn dùng lệnh: tar -cvf backup.tar folder/
  • GZIP / BZIP2 / XZ: Là các thuật toán nén giúp giảm dung lượng tệp.

Đó là lý do các file nén trên Linux thường có đuôi mở rộng kép như .tar.gz, .tar.bz2 hoặc .tar.xz (Gom bằng TAR, sau đó nén bằng thuật toán tương ứng).

3. Hướng dẫn nén file .tar.gz

Đây là chuẩn nén phổ biến nhất trên Linux nhờ sự cân bằng tuyệt vời giữa tốc độ nén và tỷ lệ nén.

Cách nén thư mục thành .tar.gz

TẠO FILE TAR.GZ
tar -czvf backup-source.tar.gz /var/www/html/

Cách giải nén file .tar.gz

Để giải nén vào thư mục hiện tại, bạn chạy lệnh sau:

GIẢI NÉN TAR.GZ
tar -xzvf backup-source.tar.gz

Mẹo: Thêm cờ -C để giải nén vào một thư mục cụ thể: tar -xzvf file.tar.gz -C /thu-muc-dich/

Cách xem nội dung bên trong mà không giải nén

LIỆT KÊ (LIST)
tar -tzvf backup-source.tar.gz

4. Hướng dẫn nén file .tar.bz2

Sử dụng thuật toán BZIP2 cho tỷ lệ nén cao hơn GZIP, giúp file đầu ra nhỏ hơn. Đổi lại, thuật toán này sẽ tiêu tốn nhiều CPU và thời gian nén hơn.

Cách nén

TẠO FILE TAR.BZ2
tar -cjvf backup-source.tar.bz2 /var/www/html/

Cách giải nén

GIẢI NÉN TAR.BZ2
tar -xjvf backup-source.tar.bz2

5. Hướng dẫn nén file .zip

Định dạng ZIP cực kỳ hữu ích khi bạn cần tải file từ VPS về máy tính cá nhân (Windows/macOS) do tính tương thích đa nền tảng. Lưu ý: Lệnh zip không có sẵn trên một số bản Linux, bạn cần cài đặt nó trước.

CÀI ĐẶT ZIP
# Trên Ubuntu/Debian:
sudo apt-get install zip unzip -y

# Trên CentOS/AlmaLinux:
sudo yum install zip unzip -y

Cách nén đệ quy thư mục

TẠO FILE ZIP
zip -r backup-source.zip /var/www/html/

Cách giải nén

GIẢI NÉN ZIP
unzip backup-source.zip

6. Các tùy chọn cờ (Flags) TAR phổ biến

Để hoàn toàn làm chủ lệnh tar, bạn cần hiểu ý nghĩa của các ký tự cấu thành nên lệnh:

  • -c (Create): Lệnh tạo một file nén mới.
  • -x (Extract): Lệnh giải nén file.
  • -z (Gzip): Chỉ định sử dụng thuật toán nén gzip (.tar.gz).
  • -j (Bzip2): Chỉ định sử dụng thuật toán nén bzip2 (.tar.bz2).
  • -v (Verbose): Hiển thị chi tiết quá trình nén/giải nén lên màn hình để dễ theo dõi.
  • -f (File): Chỉ định tên file đầu ra (luôn phải đặt ở cuối cùng của chuỗi lệnh, ngay trước tên file).
  • -t (List): Liệt kê các file bên trong mà không giải nén.

7. So sánh các định dạng nén trên Linux

Việc chọn sai định dạng nén cho một file vài chục GB có thể khiến máy chủ của bạn bị treo CPU nhiều giờ. Hãy tham khảo bảng dưới đây:

Định dạng Tỷ lệ nén Tốc độ Trường hợp khuyên dùng (Use Case)
.tar.gz Tốt Nhanh Sử dụng hàng ngày, backup source web nội bộ.
.tar.bz2 / .tar.xz Cao nhất Rất chậm (Tốn CPU) Lưu trữ file backup dài hạn (Cold storage) để tiết kiệm ổ cứng.
.zip Trung bình Nhanh Chia sẻ file đa nền tảng (gửi file từ Linux qua Windows).

8. Kết luận

Thành thạo các lệnh xử lý .tar.gz.zip là kỹ năng bắt buộc phải có đối với một quản trị viên hệ thống. Nó giúp bạn chủ động hoàn toàn trong việc sao lưu dữ liệu, chuyển host và tối ưu hóa không gian ổ cứng trên các hệ điều hành mã nguồn mở.

Lựa chọn giải pháp máy chủ tối ưu nhất cho bạn

Tùy thuộc vào yêu cầu về hiệu suất và tính linh hoạt, VietHosting luôn có giải pháp hạ tầng phần cứng mạnh mẽ sẵn sàng cho sự tăng trưởng của doanh nghiệp.

Các hướng dẫn kỹ thuật khác

Khám phá thêm các hướng dẫn kỹ thuật, thủ thuật quản trị hệ thống và bài viết phân tích giúp tối ưu hiệu năng và vận hành VPS hoặc máy chủ hiệu quả.