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 để 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, tài liệu này 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 file với lệnh gzip, gunzip và zcat
Cú pháp các lệnh:
gzip [tùy-chọn] [ -S suffix ] [ < file> ] gunzip [tùy-chọn] [ -S suffix ] [ <file> ] zcat [tùy-chọn] [ <file> ]
Lệnh gzip sẽ làm giảm kích thƣớc của file và khi sử dụng lệnh này, file gốc sẽ bị thay thế bởi file nén với phần mở rộng là .gz, các thông tin khác liên quan đến file không thay đổi. Nếu không có tên file 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.
- 39 -
Nếu tên file nén quá dài so với tên file gốc, gzip sẽ cắt bỏ bớt. gzip sẽ chỉ cắt phần tên file 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 file gồm nhiều phần nhỏ thì phần dài nhất sẽ bị cắt bỏ. Ví dụ, tên file là gzip.msdos.exe, khi đƣợc nén sẽ có tên là gzip.msd.exe.gz.
File đƣợ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 file có phần mở rộng là .gz, -gz, .z, -z, _z
hoặc .Z...gunzip dùng để giải nén các file 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 file nén trên thiết bị ra chuẩn. Các tùy chọn:
-c, --stdout --to-stdout : đƣa ra trên thiết bị ra chuẩn; giữ nguyên file gốc không có sự thay đổi. Nếu có nhiều hơn một file đầu vào, đầu ra sẽ tuần tự là các file đƣợc nén một cách độc lập.
-d, --decompress --uncompress : giải nén.
-f, --force : thực hiện nén hoặc giải nén thậm chí file có nhiều liên kết hoặc file 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 file đƣợc nén: o compressed size: kích thƣớc của file nén
o uncompressed size: kích thƣớc của file đƣợc giải nén o ratio: tỷ lệ nén (0.0% nếu không biết)
o uncompressed_name: tên của file đƣợ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ị: o method: phƣơng thức nén
o crc: CRC 32-bit cho dữ liệu đƣợc giải nén o date & time: thời gian các file đƣợc giải nén
Nếu kết hợp với tùy chọn --name, tên file đƣợc giải nén, thời gian giải nén đƣợc lƣu trữ trong file 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 file 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 file 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 file gốc và thời gian nén, (tên file 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 file 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 file hay khi thời điểm nén bị mất sau khi chuyển đổi file.
-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 file đƣợ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 file đƣợc nén
-v, --verbose : hiển thị phần trăm thu gọn đối với mỗi file đƣợc nén hoặc giải nén
- 40 -
o Nếu -# là -1 hoặc --fast thì sử dụng phƣơng thức nén nhanh nhất (less compression),
o Nếu là -9 hoặc --best thì sẽ dùng phƣơng thức nén chậm nhất (best compression).
o Ngầm định mức nén là -6 (đây là phƣơng thức nén theo tốc độ nén cao). * Nén, giải nén và xem file với các lệnh compress, uncompress, zcat
Cú pháp các lệnh:
compress [tùy-chọn] [<file>] uncompress [tùy-chọn] [<file>] zcat [tùy-chọn] [<file>]
Lệnh compress làm giảm kích thƣớc của file và khi sử dụng lệnh này, file gốc sẽ bị thay thế bởi file nén với phần mở rộng là .Z, các thông tin khác liên quan đến file không thay đổi. Nếu không có tên file nào đƣợc chỉ ra, 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. Lệnh compress chỉ sử dụng cho các file thông thƣờng. Trong một vài trƣờng hợp, nó sẽ bỏ qua liên kết tƣợng trƣng. Nếu một file có nhiều liên kết cứng, compress
bỏ qua việc nén file đó trừ khi có tùy chọn -f. Các tùy chọn:
-f : nếu tùy chọn này không đƣợc đƣa ra và compress chạy trong chế độ nền trƣớc, ngƣời dùng sẽ đƣợc nhắc khi các file đã thực sự tồn tại và có thể bị ghi đè. Các file đƣợc nén có thể đƣợc khôi phục lại nhờ việc sử dụng lệnh uncompress.
-c : tùy chọn này sẽ thực hiện việc nén hoặc giải nén rồi đƣa ra thiết bị ra chuẩn, không có file nào bị thay đổi.
Lệnh zcat tƣơng đƣơng với uncompress -c. zcat thực hiện việc giải nén hoặc là các file đƣợc liệt kê trong dòng lệnh hoặc từ thiết bị vào chuẩn để đƣa ra dữ liệu đƣợc giải nén trên thiết bị ra chuẩn.
-r : nếu tùy chọn này đƣợc đƣa ra, compress sẽ thực hiện việc nén các thƣ mục.
-v : hiển thị tỷ lệ giảm kích thƣớc cho mỗi file đƣợc nén.
CÂU HỎI VÀ BÀI tẬP
1. Trình bày đặc trƣng của hệ quản lý file. 2. Trình bày khái niệm và cấu trúc siêu khối 3. Trình bày khái niệm và cấu trúc inode
4. Trình bày tên và tác dụng của các thƣ mục đặc biệt trong Linux 5. Thực hành các lệnh liên quan đến hệ thống file