Đó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 filefile1.txt
vàfile2.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ànhfile1.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 tar
và gzip
tar -czvf archive.tar.gz file1.txt file2.txt
- Tạo lưu trữ
archive.tar.gz
, gộp và nén các filefile1.txt
vàfile2.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ệpfile1.txt
vàfile2.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
, gzip
và zip
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
- Tạo lưu trữ
backup.tar
từ nội dung thư mục/home/user/documents
. - Nén lưu trữ bằng
gzip
, để đượcbackup.tar.gz
. - Giải nén lưu trữ vào một thư mục khác, ví dụ:
/tmp/backup
. - Tạo zip-lưu trữ
docs.zip
từ các filedoc1.txt
vàdoc2.txt
. - Thử trích xuất nội dung của
docs.zip
bằng lệnhunzip
.
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! 🎉
GO TO FULL VERSION