Trong phần tiếp theo, chúng ta sẽ xem xét cách zip và giải nén các tệp bằng gzip và bzip2. Tính năng nén rất hữu ích khi sao lưu các tệp quan trọng hoặc gửi các tệp lớn qua Internet. Ngày nay có rất nhiều chương trình nén và giải nén các tập tin trong GNU / Linux.
Một đồng nghiệp đã nói với chúng tôi về một số chương trình như rar y zip trong cùng một blog này. Trong hướng dẫn này, chúng ta sẽ chỉ xem xét hai trong số chúng, chẳng hạn như gzip và bzip2. Như tôi đã nói, chúng ta hãy xem cách sử dụng chúng để nén và giải nén tệp với một số ví dụ trong Ubuntu.
Nén và giải nén tệp bằng gzip và bzip2
Chương trình gzip
Gzip là một tiện ích để nén và giải nén các tệp bằng cách sử dụng Thuật toán mã hóa Lempel-Ziv (LZ77).
-
Nén tập tin
Để nén một tập tin có tên ubunlog.txt, thay thế nó bằng một phiên bản nén, chúng tôi sẽ thực thi trong terminal (Ctrl + Alt + T):
gzip ubunlog.txt
Gzip sẽ thay thế tệp gốc gọi ubunlog.txt bằng một phiên bản nén có tên ubunlog.txt.gz.
Lệnh gzip cũng có thể được sử dụng theo những cách khác. Một ví dụ điển hình là chúng ta có thể tạo một phiên bản nén của đầu ra của một lệnh cụ thể. Nhìn vào lệnh sau.
ls -l ../../Descargas / | gzip > ubunlog.txt.gz
Lệnh trên tạo một phiên bản nén của danh sách các tệp trong thư mục Tải xuống.
-
Nén và giải nén giữ tệp gốc
Theo mặc định, chương trình gzip sẽ nén tệp đã cho, thay thế nó bằng một phiên bản nén. Tuy nhiên, chúng ta có thể giữ lại file gốc và ghi kết quả vào đầu ra tiêu chuẩn. Ví dụ: lệnh sau, nén ubunlog.txt và ghi kết quả vào out.txt.gz.
gzip -c ubunlog.txt > salida.txt.gz
Theo cách tương tự, chúng ta có thể giải nén một tập tin nén chỉ định tên của tệp đầu ra:
gzip -c -d salida.txt.gz > ubunlog1.txt
Lệnh trên giải nén file out.txt.gz và ghi kết quả vào file ubunlog1.txt. Trong hai trường hợp trước, tập tin gốc sẽ không bị xóa.
-
Giải nén tập tin
Để giải nén tệp ubunlog.txt.gz, thay thế nó bằng phiên bản không nén ban đầu, chúng tôi sẽ sử dụng lệnh sau trong terminal (Ctrl + Alt + T):
gzip -d ubunlog.txt.gz
Chúng tôi cũng có thể sử dụng gunzip để giải nén các tập tin.
gunzip ubunlog.txt.gz
-
Xem nội dung của các tệp nén mà không cần giải nén chúng
Để xem nội dung của tệp nén mà không cần giải nén bằng gzip, chúng tôi sẽ sử dụng tùy chọn -c như nó được hiển thị trong phần sau:
gunzip -c ubunlog1.txt.gz
Chúng tôi cũng có thể sử dụng tiện ích zcat cho cùng mục đích, như bên dưới:
zcat ubunlog.txt.gz
Chúng tôi sẽ có thể chuyển đầu ra bằng lệnh "less" để xem đầu ra từng trang như hình dưới đây:
gunzip -c ubunlog.txt.gz | less
Lệnh less cũng có thể được sử dụng với zcat:
zcat ubunlog.txt.gz | less
Chúng tôi cũng sẽ có tùy chọn để sử dụng chương trình zless. Điều này thực hiện chức năng tương tự như các đường ống trước đó:
zless ubunlog.txt.gz
Chúng ta có thể thoát phân trang bằng cách nhấn phím q.
-
Nén tệp bằng gzip chỉ định mức nén
Một ưu điểm khác cần ghi nhớ của gzip là hỗ trợ mức độ nén. Hỗ trợ 3 cấp độ nén như bên dưới.
1 - Nhanh hơn (tệ nhất)
9 - Chậm hơn (mejor)
6 - Mức mặc định
Để nén tập tin có tên ubunlog.txt, thay thế nó bằng một phiên bản nén với mức nén tốt nhất, chúng tôi sẽ sử dụng:
gzip -9 ubunlog.txt
-
Nối nhiều tệp nén
Một khả năng khác mà gzip cung cấp cho chúng ta là nối nhiều tệp nén thành một. Chúng ta có thể làm điều này theo cách sau:
gzip -c ubunlog1.txt > salida.txt.gz gzip -c ubunlog2.txt >> salida.txt.gz
Hai lệnh trên sẽ nén ubunlog1.txt và ubunlog2.txt và lưu chúng vào một tệp duy nhất có tên là out.txt.gz.
Chúng ta có thể xem nội dung của tập tin (ubunlog1 .txt và ubunlog1.txt) mà không cần giải nén chúng sử dụng bất kỳ lệnh nào sau đây:
gunzip -c salida.txt.gz gunzip -c salida.txt zcat salida.txt.gz zcat salida.txt
Để biết thêm chi tiết về gzip, hãy xem trang người đàn ông:
man gzip
Chương trình bzip2
El bzip2 nó rất giống với chương trình gzip. Sự khác biệt chính là nó sử dụng một thuật toán nén khác được gọi là Thuật toán nén văn bản phân loại khối Burrows-Wheeler và mã hóa Huffman. Các tệp được nén bằng bzip2 sẽ kết thúc bằng phần mở rộng .bz2.
Như tôi đã nói, việc sử dụng bzip2 khá giống với gzip. Đơn giản là chúng tôi sẽ phải thay thế gzip trong các ví dụ trên bằng bzip2, gunzip bằng bunzip2, zcat bằng bzcat và như vậy.
-
Nén tập tin
Để nén tệp bằng bzip2, thay thế nó bằng một phiên bản nén, chúng tôi sẽ thực hiện:
bzip2 ubunlog.txt
-
Nén tệp mà không xóa tệp gốc
Nếu chúng tôi không muốn thay thế tệp gốc, chúng tôi sẽ sử dụng -c tùy chọn và chúng tôi sẽ ghi kết quả vào một tệp mới.
bzip2 -c ubunlog.txt > salida.txt.bz2
-
Giải nén tập tin
đến giải nén một tập tin nén, chúng tôi sẽ sử dụng một trong hai khả năng sau:
bzip2 -d ubunlog.txt.bz2 bunzip2 ubunlog.txt.bz2
-
Xem nội dung của các tệp nén mà không cần giải nén chúng
Để xem nội dung của tệp nén mà không cần giải nén, chúng tôi sẽ chỉ phải sử dụng bất kỳ tùy chọn nào:
bunzip2 -c ubunlog.txt.bz2 bzcat ubunlog.txt.bz2
Để biết thêm chi tiết, chúng tôi có thể tham khảo trang người đàn ông:
man bzip2