Linux tar command

Tìm hiểu về Lệnh tar trong Linux: Giải nén và Nén File Dễ Dàng

Chào mừng bạn đến với thế giới Linux, nơi sức mạnh và sự linh hoạt nằm trong tay bạn! Trong bài viết này, chúng ta sẽ cùng nhau khám phá một công cụ vô cùng quan trọng và hữu ích: lệnh tar. Nếu bạn đã từng làm việc với Linux, chắc hẳn bạn đã nghe đến nó. Nhưng tar là gì? Nó dùng để làm gì? Và làm thế nào để sử dụng nó một cách hiệu quả? Hãy cùng tìm hiểu nhé!

Lệnh tar là gì?

Lệnh tar (viết tắt của "tape archive") là một tiện ích dòng lệnh trong Linux (và các hệ điều hành Unix khác) được sử dụng để tạo ra các tệp lưu trữ (archive) từ một hoặc nhiều tệp và thư mục. Nói một cách đơn giản, nó cho phép bạn "đóng gói" nhiều tệp và thư mục vào một tệp duy nhất, giúp bạn dễ dàng quản lý, chia sẻ và sao lưu dữ liệu. Tuy nhiên, bản thân lệnh tar không thực hiện nén dữ liệu. Nó chỉ tạo ra một tệp lưu trữ duy nhất. Để nén dữ liệu, người ta thường sử dụng kết hợp tar với các công cụ nén khác như gzip, bzip2, hoặc xz.

Hãy tưởng tượng bạn cần gửi một dự án bao gồm hàng trăm file nhỏ cho đồng nghiệp. Thay vì gửi từng file một, bạn có thể sử dụng tar để tạo một file "gói" duy nhất chứa tất cả các file đó. Sau đó, bạn có thể nén file "gói" này để giảm kích thước trước khi gửi. Đồng nghiệp của bạn chỉ cần giải nén và giải "gói" để có được tất cả các file ban đầu.

Tại sao nên sử dụng lệnh tar?

Có rất nhiều lý do khiến tar trở thành một công cụ không thể thiếu trong kho vũ khí của người dùng Linux:

  • Sao lưu dữ liệu: tar là một công cụ tuyệt vời để sao lưu dữ liệu quan trọng. Bạn có thể dễ dàng tạo bản sao lưu của toàn bộ hệ thống, một thư mục cụ thể, hoặc chỉ một vài tệp.
  • Chia sẻ dữ liệu: Việc chia sẻ một lượng lớn các tệp nhỏ trở nên dễ dàng hơn bao giờ hết. Thay vì gửi từng tệp riêng lẻ, bạn chỉ cần tạo một file tar duy nhất và chia sẻ nó.
  • Quản lý dữ liệu: tar giúp bạn tổ chức và quản lý dữ liệu một cách hiệu quả hơn. Bạn có thể nhóm các tệp liên quan vào một file lưu trữ duy nhất, giúp bạn dễ dàng tìm kiếm và quản lý chúng.
  • Di chuyển dữ liệu: Bạn có thể dễ dàng di chuyển dữ liệu giữa các hệ thống khác nhau bằng cách sử dụng tar.

Cú pháp cơ bản của lệnh tar

Cú pháp cơ bản của lệnh tar như sau:

tar [options] [archive-file] [file1] [file2] ...

Trong đó:

  • tar: Lệnh gọi chương trình tar.
  • [options]: Các tùy chọn điều khiển hành vi của lệnh tar.
  • [archive-file]: Tên của tệp lưu trữ sẽ được tạo hoặc giải nén.
  • [file1] [file2] ...: Danh sách các tệp và thư mục bạn muốn thêm vào tệp lưu trữ (nếu tạo) hoặc giải nén từ tệp lưu trữ (nếu giải nén).

Các tùy chọn quan trọng của lệnh tar

Lệnh tar có rất nhiều tùy chọn, nhưng đây là một số tùy chọn quan trọng và thường được sử dụng nhất:

  • -c: Tạo một tệp lưu trữ mới (create).
  • -x: Giải nén một tệp lưu trữ (extract).
  • -v: Hiển thị chi tiết các tệp được xử lý (verbose).
  • -f: Chỉ định tên của tệp lưu trữ (file).
  • -z: Sử dụng gzip để nén hoặc giải nén (gzip).
  • -j: Sử dụng bzip2 để nén hoặc giải nén (bzip2).
  • -J: Sử dụng xz để nén hoặc giải nén (xz).
  • -t: Liệt kê nội dung của tệp lưu trữ (list).
  • -C: Thay đổi thư mục làm việc trước khi tạo hoặc giải nén (change directory).

Ví dụ sử dụng lệnh tar

Dưới đây là một vài ví dụ minh họa cách sử dụng lệnh tar trong thực tế:

Tạo một tệp lưu trữ .tar từ một thư mục

Giả sử bạn muốn tạo một tệp lưu trữ có tên backup.tar từ thư mục /home/user/documents:

tar -cvf backup.tar /home/user/documents

Trong đó:

  • -c: Tạo một tệp lưu trữ mới.
  • -v: Hiển thị chi tiết các tệp được thêm vào tệp lưu trữ.
  • -f backup.tar: Chỉ định tên của tệp lưu trữ là backup.tar.
  • /home/user/documents: Thư mục bạn muốn thêm vào tệp lưu trữ.

Tạo một tệp lưu trữ .tar.gz (nén gzip) từ một thư mục

Để nén tệp lưu trữ sử dụng gzip, bạn thêm tùy chọn -z:

tar -czvf backup.tar.gz /home/user/documents

Điều này sẽ tạo ra một tệp nén có tên backup.tar.gz.

Giải nén một tệp lưu trữ .tar.gz

Để giải nén tệp backup.tar.gz, bạn sử dụng tùy chọn -x:

tar -xzvf backup.tar.gz

Điều này sẽ giải nén tất cả các tệp và thư mục từ backup.tar.gz vào thư mục hiện tại.

Liệt kê nội dung của một tệp lưu trữ .tar.gz

Để xem nội dung của tệp backup.tar.gz mà không cần giải nén, bạn sử dụng tùy chọn -t:

tar -tzvf backup.tar.gz

Điều này sẽ hiển thị danh sách tất cả các tệp và thư mục bên trong tệp lưu trữ.

Giải nén vào một thư mục cụ thể

Để giải nén tệp backup.tar.gz vào một thư mục khác, bạn sử dụng tùy chọn -C:

tar -xzvf backup.tar.gz -C /tmp/extracted

Điều này sẽ giải nén tất cả các tệp và thư mục từ backup.tar.gz vào thư mục /tmp/extracted.

So sánh tar với các công cụ lưu trữ khác

Dưới đây là bảng so sánh lệnh tar với một số công cụ lưu trữ phổ biến khác:

Công cụ Ưu điểm Nhược điểm Ứng dụng
tar Phổ biến, linh hoạt, hỗ trợ nhiều tùy chọn nén Chỉ tạo lưu trữ, cần kết hợp với công cụ nén khác Sao lưu, chia sẻ, quản lý dữ liệu
zip Đơn giản, dễ sử dụng, phổ biến trên nhiều nền tảng Hiệu quả nén thấp hơn so với các công cụ khác Lưu trữ và chia sẻ các tệp nhỏ
7z Hiệu quả nén cao, hỗ trợ nhiều thuật toán nén Ít phổ biến hơn so với tarzip Lưu trữ các tệp lớn, tiết kiệm dung lượng

Các tình huống thực tế sử dụng lệnh tar

Để giúp bạn hiểu rõ hơn về cách sử dụng lệnh tar trong thực tế, dưới đây là một vài tình huống cụ thể:

  • Sao lưu website: Bạn có thể sử dụng tar để tạo bản sao lưu đầy đủ của website của bạn, bao gồm tất cả các tệp, thư mục và cơ sở dữ liệu.
  • Triển khai ứng dụng: Bạn có thể đóng gói ứng dụng của bạn thành một file tar và dễ dàng triển khai nó trên các máy chủ khác nhau.
  • Gửi bài tập cho giảng viên: Thay vì gửi từng file code riêng lẻ, bạn có thể tạo một file tar chứa tất cả các file code của bạn và gửi nó cho giảng viên.
  • Lưu trữ ảnh và video: Bạn có thể sử dụng tar để tạo bản sao lưu của bộ sưu tập ảnh và video của bạn, đảm bảo rằng bạn sẽ không bị mất dữ liệu quan trọng.

Câu hỏi thường gặp (FAQ)

1. Làm thế nào để thêm một tệp vào một tệp lưu trữ đã tồn tại?

Lệnh tar không trực tiếp hỗ trợ việc thêm một tệp vào một tệp lưu trữ đã tồn tại. Bạn cần giải nén tệp lưu trữ hiện có, thêm tệp mới, và sau đó tạo lại tệp lưu trữ.

2. Làm thế nào để loại trừ một số tệp hoặc thư mục khi tạo tệp lưu trữ?

Bạn có thể sử dụng tùy chọn --exclude để loại trừ các tệp hoặc thư mục khi tạo tệp lưu trữ. Ví dụ:

tar -czvf backup.tar.gz /home/user --exclude=/home/user/downloads --exclude=/home/user/.cache

Điều này sẽ tạo một tệp lưu trữ từ thư mục /home/user, nhưng loại trừ thư mục /home/user/downloads/home/user/.cache.

3. Làm thế nào để xử lý các tệp có tên chứa khoảng trắng?

Bạn nên đặt tên tệp và thư mục trong dấu ngoặc kép khi sử dụng lệnh tar để tránh các vấn đề với khoảng trắng. Ví dụ:

tar -cvf "backup with spaces.tar" "file with spaces.txt"

Kết luận

Lệnh tar là một công cụ mạnh mẽ và linh hoạt, không thể thiếu đối với bất kỳ người dùng Linux nào. Nó cho phép bạn dễ dàng tạo, giải nén, và quản lý các tệp lưu trữ, giúp bạn sao lưu dữ liệu, chia sẻ tệp và tổ chức thông tin một cách hiệu quả. Hy vọng rằng bài viết này đã cung cấp cho bạn những kiến thức cần thiết để bắt đầu sử dụng lệnh tar một cách tự tin. Chúc bạn thành công!

Last Updated : 22/08/2025