Các Câu Lệnh Nén Và Giải Nén Gzip, Tar, Zip Trong Linux

0
534
huong-dan-nen-va-giai-nen-bang-tar-gzip-zip-trong-linux-1
Hướng Dẫn Nén và Giải Nén Bằng Tar Gzip Zip Trong Linux

Nén và giải nén Tar, Gzip, Zip là các lệnh thông dụng dùng để đóng gói và nén dữ liệu cơ bản trong Linux ,trong hệ điều hành Windows chúng ta thường nén giả giải nén bằng các phần mềm như : Winrar, 7Zip, …. Việc giải nén rất dễ dàng và đơn giản, chỉ việc click chuột phải vào tập tin đến nén và giải nén. Nhưng đối với 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,chúng ta thường xuyên phải sử dụng lệnh các lệnh như Tar, Gzip, Zip. Trong bài viết này MZE hướng dẫn bạn cách làm quen các dòng lệnh Linux và option cơ bản để nén và giải nén trong Linux.

Có thể bạn quan tâm :

A. 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 đó 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. Cách tạo file nén Gzip

# gzip ten_file

Khi đó, file gốc tự đổng chuyển đổi thành file nén. Ví dụ # gzip test.php sẽ chuyển đổi test.php thành test.php.gz

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

Mức độ nén được tùy chỉnh trong khoảng từ 1 đến 9.

Trong đó :
1 ~ fast nén nhanh nhất nhưng mức độ nén thấp nhất còn
9 ~ best mức độ nén cao nhất nhưng nén chậm nhất

# gzip --fast ten_file hoặc # gzip -1 ten_file
# gzip --best ten_file hoặc # gzip -9 ten_file

Các Kiểm tra thuộc tính file nén gz

# gzip -l ten_file.gz

Ví dụ,

# gzip -l mzengineer.tar.gz
         compressed        uncompressed  ratio uncompressed_name
           12647539            75991122  62.5% mzengineer.tar

2. Cách giải nén file Gzip

# gzip -d ten_file

Sau khi dùng lệnh, file nén sẽ tự động chuyển đổi thành file gốc. Ví dụ, # gzip -d test.php.gz sẽ được chuyển đổi test.php.gz thành test.php

B. Tar

Tar là được viết tắt của Tape archive, đây là lệnh sử dụng rộng rãi nhất để nén và giải nén file và folder trong Linux. Khi dùng lệnh Tar có được rất nhiều lợi ích, bạn có thể xem toàn bộ hướng dẫn về lệnh Tar trong bài viết này để rõ hơn

Tar được dùng để đóng gói file hoặc folder thành 1 file, rất hữu ích cho việc sao lưu dữ liệu. Thông thường, sau khi đóng gói file Tar sẽ có đuôi *.tar. Cách để giảm tối đa kích thước tập tin, bạn cần thêm các tùy chọn nén gzip hoặc bunzip2 khi sử dụng lệnh Tar. Các tùy chọn bên dưới bao gồm

  • c – được dùng Tạo file lưu trữ.
  • x – được dùng Giải nén file lưu trữ.
  • z – dùng Nén với gzip – Luôn luôn cần có khi làm việc với định dạng 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 đã nén.
  • u – Cập nhật file đã có trong file nén.
  • t – Liệt kê những file đang có trong file nén.
  • delete – Xóa file đã có trong file nén.
  • totals – Hiện thỉ thông số file tar
  • exclude – loại bỏ file theo yêu cầu trong quá trình nén

1. Cách tạo fie nén .tar

[email protected]:~# tar -cvf ten_file.tar file1 file2 folder1 folder2

Ten_file.tar là tên file tar bạn sẽ tạo ra. File1, folder1… là các tệp, thư mục bạn muốn đóng gói trong file tar (đóng gói theo đúng thứ tự liệt kê).

Giả sử bạn đang làm việc tại /usr, cần đóng gói thư mục bin, thư mục /boot/efi và file /root/A.txt

# tar -cvf ten_file.tar /bin /boot/efi /root/A.txt

File sau khi nén được lưu trữ ở dạng ten_file (abc.img) hoặc ở dạng file kèm đường dẫn ( root/A.txt ). Trong quá trình giải nén, file sẽ được đặt ở đúng đường dẫn đã lưu ban đầu.

Đóng gói và nén dữ liệu

Tar thông thường chỉ giúp gom dữ liệu. Để nén dữ liệu giảm thiểu dung lượng, bạn dùng cần các tùy chọn nén z cho gzip (định dạng .gz) hoặc j đối với bunzip (định dạng .bz2)

# tar -czvf ten_file.tar.gz file1 file2 folder1 folder2
hoặc
# tar -cjvf ten_file.tar.bz2 file1 file2 folder1 folder2

Lưu trữ bỏ qua các tập tin theo yêu cầu

Trong quá trình gom đóng gói và lưu trữ dữ liệu, bạn có thể loại bỏ các tập tin theo yêu cầu bằng cách sử dụng tùy chọn exclude.

Ví dụ, loại bỏ các file *.pyc ra khỏi việc đóng gói nén dữ liệu tại thư mục /usr/lib/python3/dist-packages/apt

# tar -cvf ten_file.tar /usr/lib/python3/dist-packages/apt --exclude='*.pyc'

Hiển thị tổng dung lượng đã được lưu trữ

Các hiển thị tổng dung lượng đã được lưu trữ bằng tùy chọn totals

# tar -cvf ten_file.tar file1 folder1 --totals
Total bytes written: 10240 (10KiB, 102MiB/s)

2. Cách sử dụng với file .tar

Liệt kê nội dung bên trong file lưu trữ

Để xem nội dung bên trong 1 file tar, sử dụng tùy chọn v để cho ra các thông tin chi tiết trên màn hình bao gồm permission, owner, date/time…

# tar -tvf ten_file.tar

Output :

-rw-r--r-- root/root 2268 2020-03-24 06:40 usr/lib/python3/dist-packages/apt/__pycache__/cdrom.cpython-36.pyc
-rw-r--r-- root/root 48518 2020-03-24 06:40 usr/lib/python3/dist-packages/apt/__pycache__/package.cpython-36.pyc
-rw-r--r-- root/root 19945 2020-03-24 06:40 usr/lib/python3/dist-packages/apt/__pycache__/debfile.cpython-36.pyc
-rw-r--r-- root/root 522 2020-03-24 06:40 usr/lib/python3/dist-packages/apt/__pycache__/__init__.cpython-36.pyc
-rw-r--r-- root/root 10789 2019-04-29 11:49 usr/lib/python3/dist-packages/apt/auth.py
-rw-r--r-- root/root 1312 2019-04-29 11:49 usr/lib/python3/dist-packages/apt/__init__.py

Thêm mới, cập nhập nội dung vào file lưu trữ

Cách thêm nội dung vào file nén, dùng tùy chọn r

# tar -rvf ten_file.tar add_file1 add_file2

Để cập nhập dữ liệu vào file lưu trữ đã có, dùng tùy chọn u ( thường được dùng để update các file nén )

# tar -uf ten_file.tar

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

Cách Xóa dữ liệu trong file được lưu trữ

Để xóa nội dung theo yêu cầu trong file lưu trữ, sử dụng tùy chọn delete

# tar -f ten_file.tar --delete file1 file2

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

# tar -xvf ten_file.tar

Câu lệnh trên sẽ không xóa file .tar mà sẽ chỉ giải nén dữ liệu bên trong file tar vào thư mục hiện tại. Trong trường hợp file được lưu có kèm đường dẫn, nếu đường dẫn đó không tồn tại, hệ thống sẽ tự tạo thư mục tương ứng để đặt file. Tùy theo cách bạn đóng gói dữ liệu mà khi bung ra vị trí file có thể thay đổi

Ví dụ, bạn đang làm việc tại /boot/grub và muốn đóng gói file 1.map tại thư mục đó.

  • Nếu bạn đóng gói 1.map, khi giải nén đường dẫn file sẽ là /boot/grub/1.map
  • Nếu bạn đóng gói /boot/grub/1.map, khi giải nén đường dẫn file sẽ là /boot/grub/boot/grub/1.map

Giải nén

Đối với các file nén gzip .tar.gz bạn cần sử dụng thêm tùy chọn z (với file nén gzip) hay tùy chọn j (với file nén bunzip)

# tar -xzvf ten_file.tar.gz
# tar -xjvf ten_file.tar.bz2

Giải một vài file hoặc thư mục được chỉ định

# tar -xvf ten_file.tar file1 file2

Giải nén vào 1 thư mục khác

Để bung dữ liệu vào nơi khác thư mục hiện tại, bạn cần chỉ rõ đường dẫn của thư mục đích với tùy chọn -C

# tar -xvf ten_file.tar -C /directory

Ví dụ, # tar -xvf test.tar -C /boot/efi thì toàn bộ file của test.tar sẽ được bung ra trong thư mục /boot/efi

C. Zip – Unzip

Đầu tiên, bạn cần kiểm tra cài đặt zip trong systems

Tiến hành cài đặt Zip nếu chưa có bằng lệnh sau

  • Trên Centos
# yum install zip -y
  • Trên Ubuntu
# apt install zip -y

1. Cách tạo file nén .zip

[email protected]:~# zip ten_file.zip filename1 filename2

Trong đó, ten_file.zip là file zip sẽ được tạo từ việc nén filename1 và filename2

Nén folder thành 1 file zip

Sử dụng tùy chọn -r để zip nén toàn bộ folder và các file bên trong.

# zip -r abc.zip folder1

Tạo file nén ở chế độ im lặng

Sử dụng tùy chọn -q để tạo file nén ở chế độ yên lặng – quiet, điều này sẽ không hiển thị thông tin gì trong quá trình gom nén dữ liệu

# zip -rq abc.zip folder

2. Cách giải nén file .zip

# unzip ten_file.zip

Khi đó, file trong ten_file.zip sẽ được giải nén vào thư mục hiện tại, file nén vẫn giữ nguyên
Nếu file đó còn tồn tại ở thư mục giải nén, chương trình sẽ hỏi bạn về các tùy chọn thay thế

[y]es, [n]o, [A]ll, [N]one, [r]ename

Giải nén ở chế độ im lặng

Sử dụng tùy chọn -q để giải nén ở chế độ yên lặng – quiet, điều này sẽ không hiển thị thông tin gì trong quá trình giải nén

# unzip -q abc.zip

Nếu bài viết có ích hãy LikeShare, và đừng quên đánh giá bài viết bên dưới nhé.

Nguồn MzEngineer.com

LEAVE A REPLY

Please enter your comment!
Please enter your name here