Cơ bản về lệnh tar trong Linux


Đôi khi bạn bắt gặp các file có đuôi .tar, .tar.gz… mà không hiểu các file này là gì, sử dụng ra làm sao? Bài viết sau đây sẽ giới thiệu về chương trình tar dùng để tạo và quản lý các file như vậy.

1-    Giới thiệu

tar (tape archive) là công cụ dùng để gom nhiều file vào một file duy nhất – file này được gọi là archive. Ngoài ra, tar cũng hỗ trợ 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.

Ban đầu tar được thiết kế để sao lưu tài liệu lên các băng từ (magnetic), giờ thì nó được sử dụng để tạo các file archive ở hầu hết các filesystem trên ổ cứng, ổ flash,.. Các archive được tạo với tar 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

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ụ ý rằng đối số kế tiếp (argument) 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 archive.tar từ 3 file (file1, file2, file3) nằm trong thư mục hiện hành.

tar  -cf archive.tar file1 file2 file3

File archive mới tạo không cần tới phần mở rộng .tar cũng được, các trình quản lý archive vẫn mở đượ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 kiểu của 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ự. 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–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 chuỗi các ký tự khác.

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 khác. 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

thay option bằng z (cho gzip) và Z (cho compress).

4-   Một số option khác

remove-files
sau khi gom các file vào archive, tar sẽ delete các file gốc này

–r
dùng để thêm các file vào 1 archive đã có. VD sau sẽ thêm file7 vào file.tar

tar -rf file.tar file7

–delete
xóa trực tiếp file1, file2 trong file.tar

tar -f file.tar –delete file1 file2

-t
tar sẽ liệt kê các file có trong file.tar mà không thực hiện việc bung

tar -tf file.tar

–manthang

One comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s