Hướng dẫn nén và giải nén trong Linux

Đối với hệ điều hành quản lý Windows tất cả chúng ta thường nén giả giải nén bằng những ứng dụng như : Winrar, 7Z ip, …. Việc giải nến rất đơn thuần, chỉ việc click chuột phải vào tập tin đến nén và giải nén. Nhưng trên nền tảng Linux thì việc nén và giải nén tập tin lại không như vậy. Làm việc với linux, tất cả chúng ta tiếp tục phải sử dụng lệnh tar. Trong bài viết này tất cả chúng ta sẽ làm quen những lệnh và option cơ bản nén và giải nén trong Linux .

nen-va-giai-nen-bang-command-line-trong-linux

TAR

techshare[~]# tar -[option] file_techshare files/directories

TAR chỉ dùng để đóng gói các tập tin thành 1 khối, vì vậy chúng ta cần thêm các tùy chọn nén để có thể giảm tối đa kích thước tập tin. Các tập tin tarball thường được nén ở dạng GZ hoặc BZ2 hoặc LZMA.
Tùy chọn:

  • c: Tạo file lưu trữ.
  • x: Giải nén file lưu trữ.
  • z: Nén với gzip – Luôn có khi làm việc với tập tin gzip (.gz).
  • j: Nén với bunzip2 – Luôn có khi làm việc với tập tin bunzip2 (.bz2).
  • lzma: Nén với lzma – Luôn có khi làm việc với tập tin LZMA (.lzma).
  • f: Chỉ đến file lưu trữ sẽ tạo – Luôn có khi làm việc với file lưu trữ.
  • v: Hiển thị những tập tin đang làm việc lên màn hình.
  • r: Thêm tập tin vào file đã lưu trữ.
  • u: Cập nhật file đã có trong file lưu trữ.
  • t: Liệt kê những file đang có trong file lưu trữ.
  • delete: Xóa file đã có trong file lưu trữ.
    Sử dụng kết hợp các tùy chọn để áp dụng hợp lý.

1. Tạo file tàng trữ từ những tập tin, thư mục

techshare[~]# tar -cvf file_techshare.tar file1 file2 folder1 folder2

Hoặc nén với Gzip

techshare[~]# tar -czvf file_techshare.tgz file1 file2 folder1
Hoặc
techshare[~]# tar -czvf file_techshare.tar.gz file1 file2 folder1

Nếu có quá nhiều file cần tàng trữ thì bạn hoàn toàn có thể đưa vào thư mục hoặc dùng tùy chọn “ r ” .

techshare[~]# tar -rvf file_techshare.tar add_file1 add_file2

Sau câu lệnh trên thì file mới sẽ được thêm vào trong file lưu trữ.
Bỏ qua các tập tin khỏi việc lưu trữ bằng cách sử dụng tùy chọn –exclude:

techshare[~]# tar -cf file_techshare.tar * --exclude "*.bak"

2. Liệt kê file đã có trong file lưu trữ
Sử dụng tùy chọn “v” hoặc “vv” để cho ra các thông tin chi tiết hơn trên màn hình bao gồm permission, owner, date/time…

techshare[~]# tar -tvf file_techshare.tar

3. Cập nhật file đã có trong file tàng trữ

techshare[~]# tar -uf file_techshare.tar file1

Câu lệnh trên sẽ so sánh thời gian sửa đổi của file1 bên ngoài và file1 bên trong file lưu trữ. File bên trong file lưu trữ sẽ được cập nhật nếu tập tin bên ngoài mới hơn tập tin bên trong.
Để so sánh các tập tin bên trong với các tập tin bên ngoài ta làm như sau:

techshare[~]# tar -df file_techshare.tar

4. Xóa file đã có trong file tàng trữ

techshare[~]# tar -f file_techshare.tar --delete file1 file2
Hoặc
techshare[~]# tar --delete --file file_techshare.tar [LISTFILE]

5. Bung file tàng trữ

techshare[~]# tar -xvf file_techshare.tar
Hoặc với file .tar.gz – .tgz :
techshare[~]# tar -xzvf file_techshare.tar.gz
Hoặc
techshare[~]# tar -xzvf file_techshare.tgz

Bung đến 1 thư mục định sẵn với tùy chọn “ – C ” :

techshare[~]# tar -xvf file_techshare.tar -C /path/to/extraction_directory

Chỉ bung nén một vài tập tin bên trong :

techshare[~]# tar -xvf file_techshare.tar file1 file2

Câu lệnh trên sẽ chỉ bung nén tập tin file1, file2 và bỏ lỡ những tập tin khác .
6. Nối 2 file nén

techshare[~]# tar -Af file_techshare1.tar file_techshare2.tar

Câu lệnh trên sẽ ghép nội dung file_techshare2. tar vào file_techshare1. tar .

7. Nén các các tập tin lưu trữ
Sử dụng các tùy chọn để thực hiện nén các tarball như -z, -j, -lzma.
TAR có thể xem phần mở rộng của tập tin nén hoặc tập tin đưa vào để quyết định các định dạng nén một cách tự động thông qua tùy chọn -a hoặc –auto-techshare.

techshare[~]# tar -acvf file_techshare.tar.lzma file1 file2 file3

8. Hiển thị dung lượng đã lưu trữ
In ra tổng số dung lượng dữ liệu đã đưa vào file lưu trữ thông qua tùy chọn –totals khi đóng gói file:

techshare[~]# tar -cf file_techshare.tar * --exclude "*.bak" --totals
Total bytes written: 4048000 (40MB, 26MiB/s)

GZIP – GUNZIP

GZIP được dùng khá phổ biến trong nền tảng Unix/Linux. GZIP chỉ có thể làm việc trên 1 tập tin hoặc 1 dòng dữ liệu. Do đó nó không thể lưu trữ được nhiều tập tin. Vì vậy nếu muốn sử dụng cho nhiều tập tin thì chúng ta phải sử dụng TAR đóng gói chúng lại trước.
1. Nén – giải nén tập tin
Nén:

techshare[~]# gzip file_techshare

Giải nén :

techshare[~]# gzip -d file_techshare.ext.gz
hoặc
techshare[~]# gunzip file_techshare.ext.gz

Nén với dòng tài liệu :

techshare[~]# cat file_to_techshare | gzip –c > file_techshareed.gz

2. Liệt kê thuộc tính file nén

techshare[~]# gzip -l file_techshare.ext.gz

3. Thiết lập mức độ nén

techshare[~]# gzip --fast file_techshare
hoặc
techshare[~]# gzip --best filename

4. Tỉ lệ nén

1: Thấp nhất – nhưng nhanh nhất
9: Cao nhất – nhưng chậm nhất
Chúng ta có thể sử dụng tỉ lệ nén trong khoảng cho phép trên.

techshare[~]# gzip -5 file_techshare.ext

ZIP – UNZIP

techshare[~]# zip -[option] file_techshare.zip [files/directories]

ZIP được dùng như 1 định dạng phổ cập nhất trên Internet. Nó thực thi cả việc tàng trữ và nén tài liệu .
Tùy chọn :

r: Sử dụng đệ quy – Dùng trong trường hợp nén nhiều file hay folder.
9: Mức độ nén cao nhất.
d: Xóa dữ liệu đã có trong file nén.
l: Liệt kê tập tin đang có bên trong file zip.
u: Cập nhật file đã có trong file zip.1. Nén dữ liệu

1. Nén 1 file

techshare[~]# zip file_techshare.zip file1

Nén nhiều file, hoặc thư mục

techshare[~]# zip -r file_techshare.zip file1 file2 folder1 folder2

Thêm tùy chon “ – 9 ” để nén với mức cao nhất

techshare[~]# zip -9 file_techshare.zip file1
Hoặc
techshare[~]# zip -9 -r file_techshare.zip file1 file2 folder1 folder2

2. Giải nén tập tin zip

techshare[~]# unzip file_techshare.zip

Giải nén đến thư mục được chỉ định :

techshare[~]# unzip file_techshare.zip -d /path/to/detechshare_directory

3. Cập nhật tập tin đã có trong tập tin zip

techshare[~]# zip file_techshare.zip -u newfile

4. Xóa file đã có trong tập tin zip

techshare[~]# zip -d file_techshare.zip "file1"

Xóa tập tin có tên file1 trong tập tin zip .

5. Liệt kê list những file đã có trong tập tin zip

techshare[~]# zip -l file_techshare.zip
Hướng dẫn nén và giải nén trong Linux

Bài viết liên quan
Hotline 24/7: O984.666.352
Alternate Text Gọi ngay