MM: hai số chỉ tháng,
* Tìm theo các đặc tính của tậptin với lệnh find
3.5.2 Nén dữ liệu
Việc sao l−u rất có ích nh−ng đồng thời nó cũng chiếm rất nhiều không gian cần thiết để sao l−u. Để giảm không gian l−u trữ cần thiết, có thể thực hiện việc nén dữ liệu tr−ớc khi sao l−u, sau đó thực hiện việc giải nén (dãn) để nhận lại nội dung tr−ớc khi nén.
Trong Linux có khá nhiều cách để nén dữ liệu, nh−ng trong cuốn sách này chúng tôi giới thiệu hai ph−ơng cách phổ biến là gzip và compress.
* Nén, giải nén và xem nội dung các tập tin với lệnh gzip, gunzip và
zcat
Cú pháp các lệnh này nh− sau:
gzip [tùy-chọn] [ -S suffix ] [ < tập-tin> ] gunzip [tùy-chọn] [ -S suffix ] [ <tập-tin> ] zcat [tùy-chọn] [ <tập-tin> ]
Lệnh gzip sẽ làm giảm kích th−ớc của tập tin và khi sử dụng lệnh này, tập tin gốc sẽ bị thay thế bởi tập tin nén với phần mở rộng là .gz, các thông tin khác liên quan đến tập tin không thay đổi. Nếu không có tên tập tin nào đ−ợc chỉ ra thì thông tin từ thiết bị vào chuẩn sẽ đ−ợc nén và gửi ra thiết bị ra chuẩn. Trong một vài tr−ờng hợp, lệnh này sẽ bỏ qua liên kết t−ợng tr−ng.
Nếu tên tập tin nén quá dài so với tên tập tin gốc, gzip sẽ cắt bỏ bớt. gzipsẽ chỉ cắt phần tên tập tin v−ợt quá 3 ký tự (các phần đ−ợc ngăn cách với nhau bởi dấu chấm). Nếu tên tập tin gồm nhiều phần nhỏ thì phần dài nhất sẽ bị cắt bỏ. Ví dụ, tên tập tin là gzip.msdos.exe, khi đ−ợc nén sẽ có tên là gzip.msd.exe.gz.
Tập tin đ−ợc nén có thể đ−ợc khôi phục trở lại dạng nguyên thể với lệnh gzip -d
hoặc gunzip.
Với lệnh gzip có thể giải nén một hoặc nhiều tập tin có phần mở rộng là .gz, -gz,
.z, -z, _z hoặc .Z ... gunzip dùng để giải nén các tập tin nén bằng lệnh gzip, zip,
compress, compress -H.
Lệnh zcat đ−ợc sử dụng khi muốn xem nội dung một tập tin nén trên thiết bị ra chuẩn.
Các tùy chọn nh− sau:
-c, --stdout --to-stdout
đ−a ra trên thiết bị ra chuẩn; giữ nguyên tập tin gốc không có sự thay đổi. Nếu có nhiều hơn một tập tin đầu vào, đầu ra sẽ tuần tự là các tập tin đ−ợc nén một cách độc lập.
-d, --decompress --uncompress
giải nén.
thực hiện nén hoặc giải nén thậm chí tập tin có nhiều liên kết hoặc tập tin t−ơng ứng thực sự đã tồn tại, hay dữ liệu nén đ−ợc đọc hoặc ghi trên thiết bị đầu cuối.
-h, --help
hiển thị màn hình trợ giúp và thoát.
-l, --list
hiển thị những thông tin sau đối với một tập tin đ−ợc nén:
compressed size: kích th−ớc của tập tin nén
uncompressed size: kích th−ớc của tập tin đ−ợc giải nén
ratio: tỷ lệ nén (0.0% nếu không biết)
uncompressed_name: tên của tập tin đ−ợc giải nén
Nếu kết hợp với tùy chọn --verbose, các thông tin sau sẽ đ−ợc hiển thị:
method: ph−ơng thức nén
crc: CRC 32-bit cho dữ liệu đ−ợc giải nén
date & time: thời gian các tập tin đ−ợc giải nén
Nếu kết hợp với tùy chọn --name, tên tập tin đ−ợc giải nén, thời gian giải nén đ−ợc l−u trữ trong tập tin nén
Nếu kết hợp với tùy chọn --verbose, tổng kích th−ớc và tỷ lệ nén của tất cả các tập tin sẽ đ−ợc hiển thị
Nếu kết hợp với tùy chọn --quiet, tiêu đề và tổng số dòng của các tập tin nén không đ−ợc hiển thị.
-n, --no-name
khi nén, tùy chọn này sẽ không l−u trữ tên tập tin gốc và thời gian nén, (tên tập tin gốc sẽ luôn đ−ợc l−u nếu khi nén tên của nó bị cắt bỏ). Khi giải nén, tùy chọn này sẽ không khôi phục lại tên tập tin gốc cũng nh− thời gian thực hiện việc nén. Tùy chọn này đ−ợc ngầm định.
-N, --name
tùy chọn này ng−ợc với tùy chọn trên (-n), nó hữu ích trên hệ thống có sự giới hạn về độ dài tên tập tin hay khi thời gian nén bị mất sau khi chuyển đổi tập tin.
-q, --quiet
bỏ qua mọi cảnh báo.
-r, --recursive
nén th− mục.
-S .suf, --suffix .suf
sử dụng phần mở rộng .suf thay cho .gz. Bất kỳ phần mở rộng nào cũng có thể đ−ợc đ−a ra, nh−ng các phần mở rộng khác .z và .gz sẽ bị ngăn chặn để tránh sự lộn xộn khi các tập tin đ−ợc chuyển đến hệ thống khác.
-t, --test
tùy chọn này đ−ợc sử dụng để kiểm tra tính toàn vẹn của tập tin đ−ợc nén
-v, --verbose
hiển thị phần trăm thu gọn đối với mỗi tập tin đ−ợc nén hoặc giải nén
-#, --fast, --best
điều chỉnh tốc độ của việc nén bằng cách sử dụng dấu #,
nếu -# là -1 hoặc --fast thì sử dụng ph−ơng thức nén nhanh nhất (less compression),
nếu là -9 hoặc --best thì sẽ dùng ph−ơng thức nén chậm nhất (best compression).
Ngầm định mức nén là -6 (đây là ph−ơng thức nén theo tốc độ nén cao).
Ví dụ:
# ls /home/test
Desktop data dictionary newt-0.50.8 rpm save vd1 # gzip /home/test/vd1
# ls /home/test
Desktop data dictionary newt-0.50.8 rpm save vd1.gz # zcat /home/test/vd1