21 ví dụ về lệnh tar trên Centos / Ubuntu / Debian / Fedora
Lệnh tar là lệnh được sử dụng rộng rãi nhất để tạo các tệp lưu trữ nén có thể di chuyển dễ dàng từ một ổ đĩa này sang ổ đĩa khác hoặc từ máy này sang máy khác. Trong bài viết này, bạn có thể tham khảo về các ví dụ lệnh tar bao gồm cách tạo các tệp lưu trữ sử dụng nén (tar, tar.gz và tar.bz2), cách giải nén các tệp lưu trữ, giải nén một tệp duy nhất, xem nội dung của tệp, xác minh một tệp, thêm các tệp hoặc thư mục vào tệp lưu trữ hiện có, ước tính kích thước của tệp lưu trữ tar,...
Lệnh tar là một tiện ích lưu trữ trong Linux
Lệnh tar là gì và những tùy chọn của nó
Lệnh "tar" trong Linux viết tắt của "tape archive", được sử dụng bởi nhiều quản trị hệ thống Linux/Unix để làm việc với việc sao lưu dữ liệu trên băng ghi trong Linux.
Lệnh "tar" trong Linux được sử dụng để gói gọn một bộ sưu tập các tệp và thư mục vào một tệp lưu trữ nén cao thường được gọi là "tarball" hoặc "tar", "gzip" và "bzip" trong Linux.
Mục đích chính của hướng dẫn sau là cung cấp các ví dụ về lệnh tar khác nhau có thể giúp bạn hiểu và trở thành một chuyên gia trong việc xử lý tệp lưu trữ tar.
Tùy chọn và cách sử dụng lệnh Tar:
-c - tạo một tệp lưu trữ
-x - giải nén một tệp lưu trữ
-v - hiển thị tiến trình của tệp lưu trữ
-f - tên tệp lưu trữ
-t - xem nội dung của tệp lưu trữ
-u - lưu trữ và thêm vào tệp lưu trữ hiện có
-j - lọc tệp lưu trữ thông qua bzip2
-z - lọc tệp lưu trữ thông qua gzip
-r - thêm hoặc cập nhật tệp hoặc thư mục vào tệp lưu trữ hiện có
-W - Xác minh một tệp lưu trữ
-A - nối các tệp lưu trữ
--wildcards - Chỉ định các mẫu trong lệnh tar UNIX
--exclude - loại trừ tệp và thư mục khi tạo tệp lưu trữ
--delete - xóa tệp và thư mục khỏi tệp lưu trữ
Top 21 ví dụ ứng dụng của lệnh tar
Tạo tệp tar trong Linux
Dưới đây là ví dụ về lệnh tar sẽ tạo một tệp lưu trữ tar có tên tecmint-14-09-12.tar cho một thư mục /home/tecmint trong 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
Các tùy chọn được sử dụng trong lệnh tar trên để tạo một tệp lưu trữ tar:
c - Tạo một tệp lưu trữ .tar mới. Tùy chọn này cho biết rằng chúng ta muốn tạo một tệp lưu trữ mới và thêm các tệp và thư mục vào đó.
v - Hiển thị thông tin chi tiết về quá trình tạo tệp .tar. Tùy chọn này được gọi là "verbosely" và nó sẽ hiển thị tiến trình đang diễn ra khi tạo tệp lưu trữ.
f - Xác định kiểu tệp của tệp lưu trữ. Trong ví dụ này, tùy chọn "f" được sử dụng để chỉ định tên tệp lưu trữ của tệp .tar mới được tạo ra là "tecmint-14-09-12.tar".
Tạo tệp tar.gz trong Linux
Để tạo một tệp lưu trữ nén gzip, chúng ta sử dụng tùy chọn z. Ví dụ, lệnh dưới đây sẽ tạo một tệp nén MyImages-14-09-12.tar.gz cho thư mục /home/MyImages. (Lưu ý: tar.gz và tgz đề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
Tạo tệp tar.bz2 trong Linux
Tính năng bz2 nén và tạo một tệp lưu trữ có kích thước nhỏ hơn so với gzip. Việc nén và giải nén tệp với nén bz2 mất nhiều thời gian hơn so với gzip, nhưng thời gian nén gzip lại ít hơn.
Để tạo một tệp tar nén cao, chúng ta sử dụng tùy chọn j. Lệnh ví dụ dưới đây sẽ tạo một tệp Phpfiles-org.tar.bz2 cho thư mục /home/php. (Lưu ý: tar.bz2 và tbz 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
Giải nén tệp Tar trong Linux
Để giải nén hoặc trích xuất một tệp tar, chỉ cần thực hiện lệnh sau sử dụng tùy chọn x (giải nén). Ví dụ, lệnh dưới đây sẽ giải nén tệp public_html-14-09-12.tar trong thư mục làm việc hiện tại.
Nếu bạn muốn giải nén vào một thư mục khác, hãy sử dụng tùy chọn -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
Giải nén tệp tar.gz trong Linux
Để giải nén tệp lưu trữ tar.gz, chỉ cần chạy lệnh sau đây. Nếu chúng ta muốn giải nén vào các thư mục khác nhau, chỉ cần sử dụng tùy chọn -C và đường dẫn thư mục, như trong ví dụ trên.
# 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
Giải nén tệp tar.bz2 trong Linux
Để giải nén tệp lưu trữ tar.bz2 được nén cao, chỉ cần sử dụng lệnh sau đây. Lệnh ví dụ dưới đây sẽ giải nén tất cả các tệp .flv từ tệp 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.fl /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
Liệt kê các tệp Tar trong Linux
Để liệt kê nội dung của tệp lưu trữ tar, chỉ cần chạy lệnh sau đây với tùy chọn t (liệt kê nội dung). Lệnh dưới đây sẽ liệt kê nội dung của tệp 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
Liệt kê các tệp tar.gz trong Linux
Sử dụng lệnh sau để liệt kê nội dung của tệp 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 981 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
Liệt kê các tệp tar.bz2 trong Linux
Để liệt kê nội dung của tệp tar.bz2 , hãy thực hiện như ví dụ bên dưới:
# 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
Trích xuất một tệp từ tệp lưu trữ tar
Để trích xuất một tệp duy nhất có tên cleanfiles.sh từ cleanfiles.sh.tar, bạn có thể sử dụng lệnh sau:
# tar -xvf cleanfiles.sh.tar cleanfiles.sh OR # tar --extract --file=cleanfiles.sh.tar cleanfiles.sh cleanfiles.sh
Trích xuất một tệp từ tệp lưu trữ tar.gz
Để trích xuất một tệp duy nhất có tên tecmintbackup.xml từ tệp lưu trữ tecmintbackup.tar.gz, bạn có thể sử dụng lệnh sau:
# tar -zxvf tecmintbackup.tar.gz tecmintbackup.xml OR # tar --extract --file=tecmintbackup.tar.gz tecmintbackup.xml tecmintbackup.xml
Trích xuất một tệp từ tệp lưu trữ tar.bz2
Để trích xuất một tệp duy nhất có tên index.php từ tệp Phpfiles-org.tar.bz2, bạn có thể sử dụng tùy chọn sau:
# 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
Trích xuất nhiều tệp từ các tệp lưu trữ tar
Để trích xuất hoặc giải nén nhiều tệp từ các tệp lưu trữ tar, tar.gz và tar.bz2, Ví dụ, để trích xuất "file 1" và "file 2" từ các tệp lưu trữ bạn có thể sử dụng lệnh sau:
# 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"
Trích xuất một nhóm tệp sử dụng ký tự đại diện (wildcard)
Để trích xuất một nhóm tệp hãy sử dụng ký tự đại diện (wildcard) trong Linux, Ví dụ, để trích xuất tất cả các tệp có mẫu bắt đầu bằng .php từ tệp lưu trữ tar, tar.gz hoặc tar.bz2, bạn có thể chạy lệnh sau:
# 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
Thêm tệp hoặc thư mục vào tệp lưu trữ tar
Để thêm tệp hoặc thư mục vào tệp lưu trữ tar hiện có trong Linux, chúng ta sử dụng tùy chọn r (append). Ví dụ, để thêm tệp xyz.txt và thư mục php vào tệp lưu trữ tecmint-14-09-12.tar hiện có, chúng ta có thể sử dụng lệnh sau:
# 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
Thêm tệp hoặc thư mục vào các tệp lưu trữ tar.gz và tar.bz2
Lệnh tar không có tùy chọn để thêm tệp hoặc thư mục vào một tệp lưu trữ tar.gz hoặc tar.bz2 nén hiện có. Nếu bạn cố gắng thực hiện thao tác này, bạn sẽ nhận được thông báo lỗi sau:
# 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
Xác minh tính toàn vẹn của các tệp lưu trữ tar, tar.gz và tar.bz2
Để xác minh tính toàn vẹn của bất kỳ tệp lưu trữ tar hoặc nén nào, chúng ta sử dụng tùy chọn W (verify). Tuy nhiên, lưu ý rằng bạn không thể thực hiện xác minh trên tệp lưu trữ nén (*.tar.gz, *.tar.bz2). Dưới đây là ví dụ về các lệnh tương ứng:
# 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/
Kiểm tra kích thước tệp Tar
Để kiểm tra kích thước của bất kỳ tệp lưu trữ tar, tar.gz và tar.bz2 nào, bạn có thể sử dụng lệnh sau, lưu ý rằng lệnh trên sẽ hiển thị kích thước của tệp lưu trữ trong đơn vị Kilobytes (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
Loại trừ tệp và thư mục khỏi tệp lưu trữ tar
Để loại trừ các tệp và thư mục cụ thể khi tạo tệp lưu trữ tar.gz, bạn có thể sử dụng lệnh sau với tùy chọn --exclude để loại trừ tệp và thư mục khi tạo tệp lưu trữ tar như sau:
# tar --exclude='file1.txt' -zcvf backup.tar.gz /home/tecmint # tar --exclude='/home/tecmint/uploads' -zcvf backup.tar.gz /home/tecmint
Trong lệnh trên, chúng ta đã loại trừ tệp 'file1.txt' và thư mục 'uploads' từ thư mục /home/tecmint. Để loại trừ các tệp có phần mở rộng cụ thể (.txt) khi tạo tệp lưu trữ tar, bạn có thể sử dụng lệnh sau:
# tar --exclude='*.txt' -zcvf backup.tar.gz /home/tecmint
Xóa tệp và thư mục khỏi tệp Tar
Lệnh tar sau sẽ xóa một tệp hoặc thư mục khỏi tệp tar đã được tạo trước đó bằng cách sử dụng tùy chọn --delete như sau:
# tar --delete -f backup.tar.gz file1.txt # tar --delete -f backup.tar.gz '/home/tecmint/uploads'
Giải nén phần mở rộng tệp trong tệp Tar
Lệnh tar sau chỉ sẽ giải nén các tệp có phần mở rộng cụ thể là .png từ tệp lưu trữ tar bằng cách sử dụng tùy chọn --wildcards như sau:
# tar -xvf backup.tar.gz --wildcards '*.png'
Lệnh tar có rất nhiều ứng dụng nhưng chủ yếu là dùng để nén các tệp tin hoặc thư mục. 21 ví dụ ở trên là những ví dụ cơ bản giúp người mới bắt đầu dễ dàng vận dụng, thực hành ngay trên hệ điều hành Linux.
Mọi người cũng tìm kiếm: tar ubuntu, ubuntu tar, tar centos, tar là gì, lệnh tar trong linux.