#

Tar Command Linux là gì? 18 ví dụ về lệnh tar trong Linux

 20/05/2022 - 10:28 Trịnh Duy Thanh

lenh tar trong Linux la gi

Tar Command Linux là gì?

Linux “tar” được hiểu là lưu trữ băng, được đa số nhà quản trị viên hệ thống Linux/Unix dùng đề sao lưu ổ đĩa băng.

Lệnh tar hỗ trợ tách một tập hợp các file và thư mục thành một file lưu trữ được nén dưới dạng tarball hay tar, gzip, bzip trong Linux.

Mua tên miền và hosting tại BKHOST

BKHOST là đơn vị uy tín hàng đần Việt Nam chuyên cung cấp dịch vụ tên miền và hosting. Rất nhiều chương trình khuyến mãi hấp dẫn đang chờ bạn. Đăng ký ngay hôm nay:

Mua tên miền và hosting

Nhờ vào việc tạo ra các file lưu trữ nén, giúp di chuyển file nhanh chóng và dễ dàng từ đĩa này sang đĩa khác hay từ máy này sang máy khác, tar đã trở thành lệnh được ưa chuộng nhất hiện nay.

Trong bài viết này, BKHOST sẽ cùng bạn tìm hiểu các thông tin cơ bản liên quan đến tar ví dụ như: Tạo file lưu trữ bằng cách nén, cách giải nén một file , xem nội dung của file , v.v. Với mục đích chính là truyền tải những ví dụ về lệnh tar để bạn dễ hiểu và nắm được kiến thức cũng như cách dùng tar chuyên nghiệp.

18 ví dụ về lệnh tar trong Linux

1. Tạo file lưu trữ tar trong Linux

Lệnh ví dụ dưới đây tạo file lưu trữ tar tecmint-14-09-12.tar cho thư mục /home/tecmint cho thư mục làm việc hiện tại:

# tar -cvf tecmint-14-09-12.tar /home/tecmint/

/home/tecmint/
/home/tecmint/cleanfiles.sh
/home/tecmint/openvpn-2.1.4.tar.gz
/home/tecmint/tecmint-14-09-12.tar
/home/tecmint/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
/home/tecmint/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

Tại đây có ba tùy chọn mà bạn cần lưu ý để tạo file lưu trữ tar như sau:

  • c – Tạo file lưu trữ .tar mới.
  • v – Hiển thị chi tiết tiến trình file.tar.
  • f – Loại tên file của file lưu trữ.

2. Tạo file lưu trữ tar.gz trong Linux

Để tạo file lưu trữ gzip nén, chúng tôi sử dụng tùy chọn là z.

Ví dụ: lệnh ví dụ dưới đây sẽ tạo file MyImages-14-09-12.tar.gz nén cho thư mục /home/MyImages.

(Lưu ý: tar.gztgz đều tương tự).

# tar cvzf MyImages-14-09-12.tar.gz /home/MyImages
OR
# tar cvzf MyImages-14-09-12.tgz /home/MyImages

/home/MyImages/
/home/MyImages/Sara-Khan-and-model-Priyanka-Shah.jpg
/home/MyImages/RobertKristenviolent101201.jpg
/home/MyImages/Justintimerlake101125.jpg
/home/MyImages/Mileyphoto101203.jpg
/home/MyImages/JenniferRobert101130.jpg
/home/MyImages/katrinabarbiedoll231110.jpg
/home/MyImages/the-japanese-wife-press-conference.jpg
/home/MyImages/ReesewitherspoonCIA101202.jpg
/home/MyImages/yanaguptabaresf231110.jpg

3. Tạo file lưu trữ tar.bz2 trong Linux

Tạo lưu trữ với bz2 nén có kích thước nhỏ hơn của gzip. Nén bz2 mất nhiều thời gian hơn để nén, nhưng tốn ít thời gian giải nén hơn so với gzip.

Sử dụng tùy chọn j để có thể tạo một file nén tar có độ nén cao. Lệnh ví dụ sau sẽ tạo file Phpfiles-org.tar.bz2 cho thư mục /home/php.

(Lưu ý: tar.bz2tbz tương tự như tb2).

# tar cvfj Phpfiles-org.tar.bz2 /home/php
OR
# tar cvfj Phpfiles-org.tar.tbz /home/php
OR 
# tar cvfj Phpfiles-org.tar.tb2 /home/php

/home/php/
/home/php/iframe_ew.php
/home/php/videos_all.php
/home/php/rss.php
/home/php/index.php
/home/php/vendor.php
/home/php/video_title.php
/home/php/report.php
/home/php/object.html
/home/php/video.php

4. Untar tar Archive File trong Linux

Sử dụng tùy chọn x để giải nén hoặc gỡ bỏ một file. Lệnh ví dụ sau đây sẽ bỏ ghi file public_html-14-09-12.tar trong thư mục làm việc hiện tại.

Nếu bạn muốn bỏ mục cụ thể trong một thư mục khác, hãy sử dụng tùy chọn là -C (thư mục được chỉ định).

## Untar files in Current Directory ##
# tar -xvf public_html-14-09-12.tar

## Untar files in specified Directory ##
# tar -xvf public_html-14-09-12.tar -C /home/public_html/videos/

/home/public_html/videos/
/home/public_html/videos/views.php
/home/public_html/videos/index.php
/home/public_html/videos/logout.php
/home/public_html/videos/all_categories.php
/home/public_html/videos/feeds.xml

5. Giải nén file lưu trữ tar.gz trong Linux

Để giải nén file lưu trữ tar.gz, chỉ cần chạy lệnh như ở ví dụ.

Nếu bạn muốn bỏ mục cụ thể trong các thư mục khác nhau, chỉ cần sử dụng tùy chọn -C và kèm theo đường dẫn đến thư mục. Lệnh sẽ được thể hiện ở ví dụ sau:

# tar -xvf thumbnails-14-09-12.tar.gz

/home/public_html/videos/thumbnails/
/home/public_html/videos/thumbnails/katdeepika231110.jpg
/home/public_html/videos/thumbnails/katrinabarbiedoll231110.jpg
/home/public_html/videos/thumbnails/onceuponatime101125.jpg
/home/public_html/videos/thumbnails/playbutton.png
/home/public_html/videos/thumbnails/ReesewitherspoonCIA101202.jpg
/home/public_html/videos/thumbnails/snagItNarration.jpg
/home/public_html/videos/thumbnails/Minissha-Lamba.jpg
/home/public_html/videos/thumbnails/Lindsaydance101201.jpg
/home/public_html/videos/thumbnails/Mileyphoto101203.jpg

6. Giải nén file lưu trữ tar.bz2 trong Linux

Để giải nén file tar.bz2 có độ nén cao, chỉ cần sử dụng lệnh như ví dụ dưới đây, nó giúp gỡ bỏ tất cả các file.flv khỏi file lưu trữ.

# tar -xvf videos-14-09-12.tar.bz2

/home/public_html/videos/flv/katrinabarbiedoll231110.flv
/home/public_html/videos/flv/BrookmuellerCIA101125.flv
/home/public_html/videos/flv/dollybackinbb4101125.flv
/home/public_html/videos/flv/JenniferRobert101130.flv
/home/public_html/videos/flv/JustinAwardmovie101125.flv
/home/public_html/videos/flv/Lakme-Fashion-Week.flv
/home/public_html/videos/flv/Mileyphoto101203.flv
/home/public_html/videos/flv/Minissha-Lamba.flv

7. Liệt kê nội dung của file lưu trữ tar trong Linux

Để liệt kê nội dung của file lưu trữ tar hãy dùng tùy chọn (nội dung danh sách). Ví dụ lệnh dưới đây sẽ liệt kê nội dung của file uploadprogress.tar.

# tar -tvf uploadprogress.tar

-rw-r--r-- chregu/staff 2276 2011-08-15 18:51:10 package2.xml
-rw-r--r-- chregu/staff 7877 2011-08-15 18:51:10 uploadprogress/examples/index.php
-rw-r--r-- chregu/staff 1685 2011-08-15 18:51:10 uploadprogress/examples/server.php
-rw-r--r-- chregu/staff 1697 2011-08-15 18:51:10 uploadprogress/examples/info.php
-rw-r--r-- chregu/staff 367 2011-08-15 18:51:10 uploadprogress/config.m4
-rw-r--r-- chregu/staff 303 2011-08-15 18:51:10 uploadprogress/config.w32
-rw-r--r-- chregu/staff 3563 2011-08-15 18:51:10 uploadprogress/php_uploadprogress.h
-rw-r--r-- chregu/staff 15433 2011-08-15 18:51:10 uploadprogress/uploadprogress.c
-rw-r--r-- chregu/staff 1433 2011-08-15 18:51:10 package.xml

8. Liệt kê nội dung file lưu trữ tar.gz trong Linux

Sử dụng lệnh theo ví dụ sau để liệt kê nội dung của file tar.gz.

# tar -tvf staging.tecmint.com.tar.gz

-rw-r--r-- root/root 0 2012-08-30 04:03:57 staging.tecmint.com-access_log
-rw-r--r-- root/root 587 2012-08-29 18:35:12 staging.tecmint.com-access_log.1
-rw-r--r-- root/root 156 2012-01-21 07:17:56 staging.tecmint.com-access_log.2
-rw-r--r-- root/root 156 2011-12-21 11:30:56 staging.tecmint.com-access_log.3
-rw-r--r-- root/root 156 2011-11-20 17:28:24 staging.tecmint.com-access_log.4
-rw-r--r-- root/root 0 2012-08-30 04:03:57 staging.tecmint.com-error_log
-rw-r--r-- root/root 3981 2012-08-29 18:35:12 staging.tecmint.com-error_log.1
-rw-r--r-- root/root 211 2012-01-21 07:17:56 staging.tecmint.com-error_log.2
-rw-r--r-- root/root 211 2011-12-21 11:30:56 staging.tecmint.com-error_log.3
-rw-r--r-- root/root 211 2011-11-20 17:28:24 staging.tecmint.com-error_log.4

9. Liệt kê nội dung file Lưu trữ tar.bz2 trong Linux

Lệnh sau đây giúp liệt kê nội dung của file tar.bz2

# tar -tvf Phpfiles-org.tar.bz2

drwxr-xr-x root/root 0 2012-09-15 03:06:08 /home/php/
-rw-r--r-- root/root 1751 2012-09-15 03:06:08 /home/php/iframe_ew.php
-rw-r--r-- root/root 11220 2012-09-15 03:06:08 /home/php/videos_all.php
-rw-r--r-- root/root 2152 2012-09-15 03:06:08 /home/php/rss.php
-rw-r--r-- root/root 3021 2012-09-15 03:06:08 /home/php/index.php
-rw-r--r-- root/root 2554 2012-09-15 03:06:08 /home/php/vendor.php
-rw-r--r-- root/root 406 2012-09-15 03:06:08 /home/php/video_title.php
-rw-r--r-- root/root 4116 2012-09-15 03:06:08 /home/php/report.php
-rw-r--r-- root/root 1273 2012-09-15 03:06:08 /home/php/object.html

10. Untar file đơn từ file tar trong Linux

Nếu muốn giải nén một file duy nhất được gọi là cleanfiles.sh từ cleanfiles.sh.tar, hãy sử dụng lệnh theo ví dụ như sau:

# tar -xvf cleanfiles.sh.tar cleanfiles.sh
OR
# tar --extract --file=cleanfiles.sh.tar cleanfiles.sh

cleanfiles.sh

11. Untar file đơn từ file tar.gz trong Linux

Để giải nén một file tecmintbackup.xml từ file lưu trữ tecmintbackup.tar.gz, lệnh sau đây sẽ giúp bạn làm điều đó:

# tar -zxvf tecmintbackup.tar.gz tecmintbackup.xml
OR
# tar --extract --file=tecmintbackup.tar.gz tecmintbackup.xml

tecmintbackup.xml

12. Untar file đơn từ file tar.bz2 trong Linux

Tùy chọn sau đây sẽ giúp bạn giải nén một file duy nhất có tên là index.php từ file Phpfiles-org.tar.bz2:

# tar -jxvf Phpfiles-org.tar.bz2 home/php/index.php
OR
# tar --extract --file=Phpfiles-org.tar.bz2 /home/php/index.php

/home/php/index.php

13. Untar nhiều file từ file tar, tar.gz và tar.bz2

Trong trường hợp muốn giải nén hay gỡ bỏ nhiều file cùng lúc từ file lưu trữ tar, tar.gztar.bz2. Ví dụ dưới đây giúp bạn trích xuất từng file theo dạng “file 1”, “file 2” từ file lưu trữ mà bạn cần gỡ bỏ hoặc giải nén.

# tar -xvf tecmint-14-09-12.tar "file1" "file2"

# tar -zxvf MyImages-14-09-12.tar.gz "file1" "file2"

# tar -jxvf Phpfiles-org.tar.bz2 "file1" "file2"

14. Giải nén nhóm file bằng cách sử dụng Wildcard trong Linux

Ngoài ra bạn còn có thể giải nén một nhóm file dựa vào ký tự đại diện.

Ví dụ: để trích xuất một nhóm tất cả các file có mẫu bắt đầu bằng .php từ file lưu trữ tar, tar.gz tar.bz2.

# tar -xvf Phpfiles-org.tar --wildcards '*.php'

# tar -zxvf Phpfiles-org.tar.gz --wildcards '*.php'

# tar -jxvf Phpfiles-org.tar.bz2 --wildcards '*.php'

/home/php/iframe_ew.php
/home/php/videos_all.php
/home/php/rss.php
/home/php/index.php
/home/php/vendor.php
/home/php/video_title.php
/home/php/report.php
/home/php/video.php

15. Thêm file hoặc thư mục vào file lưu trữ tar trong Linux

Để thêm file hoặc thư mục vào file lưu trữ tar hiện có, bạn có thể sử dụng tùy chọn r (append).

Ví dụ: chúng tôi thêm file xyz.txt và thư mục php vào file lưu trữ tecmint-14-09-12.tar hiện có.

# tar -rvf tecmint-14-09-12.tar xyz.txt

# tar -rvf tecmint-14-09-12.tar php

drwxr-xr-x root/root 0 2012-09-15 02:24:21 home/tecmint/
-rw-r--r-- root/root 15740615 2012-09-15 02:23:42 home/tecmint/cleanfiles.sh
-rw-r--r-- root/root 863726 2012-09-15 02:23:41 home/tecmint/openvpn-2.1.4.tar.gz
-rw-r--r-- root/root 21063680 2012-09-15 02:24:21 home/tecmint/tecmint-14-09-12.tar
-rw-r--r-- root/root 4437600 2012-09-15 02:23:41 home/tecmint/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
-rw-r--r-- root/root 12680 2012-09-15 02:23:41 home/tecmint/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
-rw-r--r-- root/root 0 2012-08-18 19:11:04 xyz.txt
drwxr-xr-x root/root 0 2012-09-15 03:06:08 php/ 
-rw-r--r-- root/root 1751 2012-09-15 03:06:08 php/iframe_ew.php 
-rw-r--r-- root/root 11220 2012-09-15 03:06:08 php/videos_all.php 
-rw-r--r-- root/root 2152 2012-09-15 03:06:08 php/rss.php 
-rw-r--r-- root/root 3021 2012-09-15 03:06:08 php/index.php 
-rw-r--r-- root/root 2554 2012-09-15 03:06:08 php/vendor.php 
-rw-r--r-- root/root 406 2012-09-15 03:06:08 php/video_title.php

16. Thêm file hoặc thư mục vào file tar.gz và tar.bz2

Vì lệnh tar không hỗ trợ tùy chọn để thêm file hoặc thư mục vào file lưu trữ tar.gztar.bz2 được nén hiện có. Do đó, nếu bạn cố gắng thêm sẽ nhận được lỗi sau đây:

# tar -rvf MyImages-14-09-12.tar.gz xyz.txt

# tar -rvf Phpfiles-org.tar.bz2 xyz.txt

tar: This does not look like a tar archive
tar: Skipping to next header
xyz.txt
tar: Error exit delayed from previous errors

17. Cách xác minh file lưu trữ tar, tar.gz và tar.bz2

Tùy chọn W giúp bạn xác minh các file lưu trữ hay các file nén.

Bạn có thể sử dụng lệnh như ví dụ sau để xác minh. (Lưu ý: Bạn không thể xác minh trên file lưu trữ nén (* .tar.gz, * .tar.bz2)).

# tar tvfW tecmint-14-09-12.tar

tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
tar: VERIFY FAILURE: 30740 invalid headers detected
Verify -rw-r--r-- root/root 863726 2012-09-15 02:23:41 /home/tecmint/openvpn-2.1.4.tar.gz
Verify -rw-r--r-- root/root 21063680 2012-09-15 02:24:21 /home/tecmint/tecmint-14-09-12.tar
tar: /home/tecmint/tecmint-14-09-12.tar: Warning: Cannot stat: No such file or directory
Verify -rw-r--r-- root/root 4437600 2012-09-15 02:23:41 home/tecmint/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
tar: /home/tecmint/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm: Warning: Cannot stat: No such file or directory
Verify -rw-r--r-- root/root 12680 2012-09-15 02:23:41 home/tecmint/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
tar: /home/tecmint/rpmforge-release-0.5.2-2.el5.rf.i386.rpm: Warning: Cannot stat: No such file or directory
Verify -rw-r--r-- root/root 0 2012-08-18 19:11:04 xyz.txt
Verify drwxr-xr-x root/root 0 2012-09-15 03:06:08 php/

18. Kiểm tra kích thước của file lưu trữ tar, tar.gz và tar.bz2

Để kiểm tra kích thước của bất kỳ file lưu trữ tar, tar.gztar.bz2 nào, hãy sử dụng lệnh sau. Ví dụ: lệnh dưới đây sẽ hiển thị kích thước của file lưu trữ bằng Kilobyte (KB).

# tar -czf - tecmint-14-09-12.tar | wc -c
12820480

# tar -czf - MyImages-14-09-12.tar.gz | wc -c
112640

# tar -czf - Phpfiles-org.tar.bz2 | wc -c
20480

Tùy chọn và sử dụng tar

  • c – tạo một file lưu trữ.
  • x – giải nén một file lưu trữ.
  • v – hiển thị tiến trình của file lưu trữ.
  • f – tên file của tập tin lưu trữ.
  • t – xem nội dung của file lưu trữ.
  • j – lọc kho lưu trữ thông qua bzip2.
  • z – lọc kho lưu trữ thông qua gzip.
  • r – nối hoặc cập nhật file hoặc thư mục vào file lưu trữ hiện có.
  • W – Xác minh file lưu trữ.
  • wildcards – Chỉ định các mẫu trong lệnh tar UNIX.

Tổng kết về lệnh tar trong Linux

Hy vọng với các ví dụ về lệnh tar ở trên giúp bạn có thêm thông tin cũng như thao tác với tar một cách chuyên nghiệp hơn. Ngoài ra, nếu bạn có nhu cầu tìm hiểu thêm về cách chia file lưu trữ tar lớn thành nhiều phần hay nhiều khối, hoặc những lệnh khác sử dụng trong Linux, hãy để lại bình luận ở bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất. Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.

Đăng ký tên miền .PRO tại BKHOST

BKHOST đang có chương trình khuyến mại cực hot dành cho khách hàng đăng ký tên miền .PRO:

  • Giảm giá lên đến 70%  cho đăng ký mới chỉ còn 129k cho năm đầu tiên.
  • Miễn phí 100% dịch vụ khởi tạo tên miền .PRO.

Đăng ký ngay hôm nay:

Tên miền .pro

Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger