Monday, April 29, 2013

Lệnh tar trong Linux


tar (Tape ARchive) là công cụ được sử dụng để gom 1 nhóm file(s) (folder là 1 loại file đặc biệt) thành 1 file duy nhất – file này được gọi là archive, hoặc để bung (xả) các file trong archive. Điểm đáng lưu ý là lệnh tar không thực hiện việc nén các file vào archive.

1 Archive là 1 file đơn lẻ mà chứa nhiều file khác + thông tin phụ để giúp các chương trình quản lý archive bung các file trong archive mà vẫn đảm bảo tính toàn vẹn dữ liệu của các file này. Archive rất thuận tiện trong việc quản lý, lưu trữ các file cũng như truyền qua mạng để phân phối chương trình.
Ban đầu tar được thiết kế để sao lưu tài liệu lên các băng từ (magnetic tape – 1 loại thiết bị lưu trữ dữ liệu), giờ thì nó được sử dụng để tạo các file archive ở bất cứ đâu trên filesystem (ổ cứng, ổ Flash,..). Các archive được tạo với tar thì thường được gọi là tarball.

Tar không thực thi việc nén file. Tuy nhiên, bạn có thể sử dụng các tiện ích nén chuyên biệt để nén file archive như bzip2, gzip, compress.
Cú pháp cơ bản của tar
tar option(s) archive_name file_name(s)
Tar có nhiều tùy chọn (option), nhiều trong số đó ít được sử dụng. Không giống với nhiều lệnh khác, tar yêu cầu phải có ít nhất 1 option, và thường bạn sử dụng >=2 option.
2/ Tạo file archive .tar
Bạn sử dụng 2 option –c (create) và –f (file)để tạo file .tar. Option –c ra lệnh cho tar “hãy tạo 1 file archive”, option –f ngụ ý là đối số kế tiếp (argument – dữ liệu đầu vào trong 1 lệnh) sẽ là tên của file archive sẽ tạo.
Ví dụ dưới đây sẽ tạo ra 1 file archive có tên file.tar từ 3 file (file1, file2, file3) nằm trong folder hiện hành (current directory – folder mà dấu nhắc lệnh đang ở đó, khi user gõ lệnh thì lệnh đó sẽ làm việc với folder này)
tar -cf file.tar file1 file2 file3
File archive mới tạo không cần tới phần mở rộng (extension) .tar cũng được, các archive manager vẫn open được các file không có đuôi .tar này. Tuy nhiên, việc sử dụng extension thì trực quan hơn khi nhận diện loại file nào đó.
–f là option cuối cùng trong 1 chuỗi liên tiếp các option chỉ có 1 ký tự (không bị tách ra bới khoảng trắng). Option –f là cần thiết để không gây nhầm lẫn cho hệ thống, khi filename.tar mà ta mong muốn sẽ không phải là option kế tiếp trong chuỗi
Option –v (verbose) thường được sử dụng với –c và –f để hiển thị danh sách các file đang được đưa vào trong archive
tar -cvf file.tar file1 file2 file3
tar cũng được dùng để tạo file archive từ 1 hoặc nhiều folder
tar -cvf dir.tar dir1 dir2
Bạn cũng có thể sử dụng wildcard – 1 ký tự đặc biệt mà có thể đại diện cho 1 lớp (chuỗi) các ký tự khác. VD sau sử dụng wildcard là ký tự * – đại diện cho bất kỳ ký tự hoặc chuỗi ký tự nào.
tar -cf *
Lệnh trên sẽ tạo ra 1 archive bao gồm tất cả các đối tượng (file, folder) trong thư mục hiện hành
3/ Nén file archive .tar
Vì tar không có tính năng nén và giải nén nên tar thường được sử dụng kết hợp với 1 tiện ích nén/giải nén mở rộng. Ví dụ sau sẽ tạo ra 1 file archive của các file (file4, file5, file6), sau đó file archive này được nén bởi chương trình bz2, cuối cùng ta được file có tên files.tar.bz2
tar -cvjf files.tar.bz2 file4 file5 file6
bạn thay option j bằng z (cho gzip) và Z (cho compress)

4/ Bung tarball

Lệnh tar cũng được dùng để bung gói .tar. Nếu file.tar được nén, nó phải được giải nén bằng 1 chương trình thích hợp trước khi bung file.tar
Để bung 1 file.tar, sử dụng 2 option là –x(extract) và –f. Nếu cần bạn thêm vào –v để thấy được danh sách các file đang được bung ra
tar -xvf file.tar
Các option được sử dụng để chương trình nén tự động nén file.tar vừa được tạo cũng được sử dụng để giải nén file.tar trước khi bung file.tar này.
tar -xjvf files.tar.bz2
bạn thay option j bằng z (cho gzip) và Z (cho compress)
5/ 1 số option khác
* option –remove-files 
sau khi gom các file vào archive, tar sẽ delete các file gốc này
* option –r
Dùng để thêm các file vào 1 archive có sẵn bạn dùng. VD sau sẽ thêm file7 vào .tar (file.tar nằm trong thư mục hiện hành).
tar -rf file.tar file7
* option –delete 
VD này sẽ xóa trực tiếp file1, file2 trong file.tar
tar -f file.tar –delete file1 file2
* option –t
tar -tf file.tar
tar sẽ liệt kê các file có trong file.tar mà không thực hiện việc bung
–help: cung cấp danh sách các option
–version: hiện số phiên bản của chương trình tar cũng như thông tin về tác quyền

No comments:

Post a Comment