Chương trình tar

Một phần của tài liệu Giáo trình Tự học hệ điều hành Linux (Nội Bộ) (Trang 97 - 99)

4 Làm quen với hệ thống tập tin ext3fs

4.7 Các câu lệnh lưu trữ và nén tập tin

4.7.1 Chương trình tar

Những người dùng đã quen với những chương trình nén dạng winzip (đưa tất cả tập tin vào một “kho” rồi sau đó nén chúng) thì có thể sẽ hỏi “Tại sao lại cần hai chương trình?”. Chúng ta sẽ tìm thấy câu trả lời cho câu hỏi này sau khi đọc xong hai phần tới đây, và sẽ thấy đây không phải là một yếu điểm của Linux mà còn là điểm mạnh nếu biết cách kết hợp “nhịp nhàng” hai chương trình này.

Tên chương trình tar có nghĩa là tape archiver, tức là chương trình này

khơng nén các dữ liệu mà chỉ kết hợp chúng vào một tập tin chung sau đó ghi tập tin này lên cách băng nhớ (tape) thường dùng để lưu trữ thông tin. Nếu muốn tạo tập tin này trên đĩa cứng, thì cần sử dụng lệnhtarvới tùy chọnf, sau đó chỉ

ra tên tập tin. Chương trìnhtarcó 8 tùy chọn khác với những tùy chọn còn lại ở chỗ khi chạy lệnhtarthì cần phải đưa ra một trong số 8 tùy chọn này. Tám tùy chọn này xác định các chức năng chính của chương trình (xem bảng4.5).

Bảng 4.5: Những tùy chọn chính củatar

Tùy chọn Ý nghĩa

-A, --catenate, --concatenate Thêm tập tin vào kho đã có. -c, --create Tạo kho mới.

-d, --diff, --compare Tìm sự khác nhau giữa các tập tin trong kho và trên hệ thống tập tin (so sánh).

--delete Xóa tập tin khỏi kho (khơng dùng cho băng ghi).

-r, --append Thêm tập tin vào cuối kho.

-t, --list Đưa ra danh sách các tập tin trong kho. -u, --update Chỉ thêm những tập tin mới hơn bản sao

trong kho (cập nhật kho).

-x, --extract, --get Lấy tập tin ra khỏi kho (“giải phóng”).

Nếu bạn làm việc với các tập tin kho trên đĩa chứ không phải với băng ghi (đây là đa số trường hợp sử dụng máy tính cá nhân), thì nhất định phải dùng tùy chọnf. Những tùy chọn khác (trừ 8 tùy chọn bắt buộc kể trên) là không cần

thiết, chúng chỉ dùng để thêm vào các chức năng phụ cụ thể nào đó. Ví dụ, tùy chọnvbắt buộc chương trình phải đưa ra danh sách các tập tin đưa vào kho.

Có thể liệt kê các tuỳ chọn một chữ cái (c, f, . . . ) liền nhau và dấu gạch ngang (–) ở phía trước có thể dùng nhưng khơng nhất thiết phải có. Chúng ta sẽ thấy ở ví dụ tới đây. Tơi sẽ không đưa ra mô tả tất cả các tùy chọn của lệnhtar, mà chỉ

cho biết một số dòng lệnh cần thiết nhất để làm việc với các kho tập tin. Như vậy sẽ có ích hơn trong thời gian này.

Để tạo một kho tập tin tar từ vài tập tin cần sử dụng một trong hai lệnh sau:

[user]$ tar -cf tên_kho tập_tin1 tập_tin2 [user]$ tar cf tên_kho tập_tin1 tập_tin2

trong đó tùy chọn c(từ bây giờ tôi sẽ bỏ đi dấu gạch ngang “–” ở phía trước tuỳ chọn) cho biết chương trình cần tạo ra (create) kho tập tin, còn tuỳ chọn f cho biết là kho này phải được tạo ở dạng tập tin có têntên_khoở phía sau tùy chọn. Trong phần tên tập tin muốn lưu vào kho có thể sử dụng các “mẫu tên”, bao gồm cả các ký tự thay thế đơn giản như “*” và “?”. Nhờ vào tính năng này có thể lưu vào kho ngay lập tức nhiều tập tin bằng một câu lệnh rất ngắn. Ví dụ, để tạo ra kho chứa tất cả các tập tin của một thư mục con của thư mục hiện thời, giả sử

projects, thì chỉ cần gọi lệnh:

[user]$ tar cf projects.tar projects/*

hoặc thậm chí cịn đơn giản hơn:

[user]$ tar cf projects.tar projects

Câu lệnh này sẽ tạo ra khoprojects.tartrong thư mục hiện thời. Kho này không chỉ lưu tất cả những tập tin có trong thư mục projects mà còn lưu tất cả những thư mục con của nó cùng với tất cả những tập tin nằm trong chúng (chúng ta dùng thuật ngữ “lưu đệ quy”, hoặc “lưu toàn bộ cấu trúc thư mục”). Trong tập tin kho cấu trúc thư mục củaprojectsvẫn được giữ nguyên.

Cần chú ý là trong ví dụ trên nếu ở chỗ “*” đặt “*.*” thì sẽ chỉ lưu những tập tin nằm trực tiếp trong thư mục projectsvà những thư mục con có dấu chấm trong tên (ít gặp), những thư mục con cịn lại của projectssẽ khơng được lưu. Cũng trong ví dụ này nếu khơng chỉ ra tên thư mục thì sẽ lưu tất cả các tập tin và thư mục con của thư mục hiện thời. Nếu chạy lệnh sau:

[user]$ tar cvf tên_kho ./.*

thì không chỉ lưu tất cả các tập tin và thư mục con của thư mục hiện thời, mà còn lưu những tập tin của thư mục mẹ.

Bây giờ bạn đọc đã biết cách tạo kho tập tin. Để lấy (giải phóng) tất cả tập tin ra khỏi kho, cần dùng lệnh:

[user]$ tar xvf tên_kho

Hiển thị danh sách các tập tin trong kho bằng lệnh:

[user]$ tar tvf tên_kho | less

4.7 Các câu lệnh lưu trữ và nén tập tin 91

[user]$ tar xvf tên_kho tên_tập_tin

Chương trình tar là phương tiện thuận lợi để tạo các bản sao lưu trữ (sao lưu) của tập tin. Tất nhiên cịn có những tiện ích sao lưu chun dùng khác, nhưng cả khi bạn đọc khơng biết những tiện ích này, thì vẫn có thể sao lưu dữ liệu q báu của mình lên đĩa mềm bằng:

[user]$ tar Mcvf /dev/fd0 thư_mục

rồi phục hồi thư mục bằng lệnh:

[user]$ tar Mxpvf /dev/fd0

Hoặc đơn giản hơn, tạo một tập tin kho chứa:

[user]$ tar cvf tên_kho thư_mục

rồi sao chép tập tin tên_kho lên một thiết bị lưu tháo rời hoặc thư mục trên mạng nào đó (CD, DVD, flash, ftp,. . . ). Phục hồi lại bằng lệnh:

[user]$ tar xpvf tên_kho

Nếu có khó khăn khi sử dụng lệnhtar, hãy đọc trợ giúp man của nó hoặc đọc

những thơng tin hiện ra khi chạytarvới tùy chọn--help

Một phần của tài liệu Giáo trình Tự học hệ điều hành Linux (Nội Bộ) (Trang 97 - 99)

Tải bản đầy đủ (PDF)

(145 trang)