Trong hệ điều hành Linux, "tar" viết tắt của tape archive - nó được sử dụng bởi nhiều quản trị hệ thống Linux/Unix để sao lưu dữ liệu trên đĩa từ trong Linux. Tar command Linux được sử dụng để né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 được gọi chung là tarball hoặc tar, gzip, và bzip trong Linux.
tar là lệnh phổ biến nhất được sử dụng để tạo các tệp lưu trữ nén có thể dễ dàng chuyển 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, chúng tôi sẽ xem xét và thảo luận về các ví dụ sử dụng lệnh tar bao gồm cách tạo tệp lưu trữ bằng cách sử dụng (tar, tar.gz, và tar.bz2) nén, 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 tệp, thêm 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, v.v.
Mục đích chính của hướng dẫn này là cung cấp các ví dụ sử dụng lệnh tar có thể hữu ích cho bạn để hiểu và trở thành chuyên gia trong việc xử lý tệp lưu trữ tar.
1. Tạo tệp lưu trữ Tar
Ví dụ dưới đây của lệnh tar sẽ tạo một tệp lưu trữ tar có tên tecmint-17-11-2023.tar
cho một thư mục /home/tecmint trong thư mục làm việc hiện tại.
Xem ví dụ của lệnh tar trong hoạt động.
tar -cvf tecmint-17-11-2023.tar /home/tecmint/
Hãy thảo luận từng tùy chọn được sử dụng trong lệnh tar ở trên:
c
– Tạo tệp lưu trữ tar mới.
v
– Hiển thị chi tiết tiến trình của tệp tar.
f
– Loại tệp lưu trữ là tệp tin.
2. Tạo tệp lưu trữ Tar với nén
Để tạo một tệp lưu trữ đã nén, chúng ta sử dụng tùy chọn 'z'
(nén tệp lưu trữ bằng gzip). Ví dụ, lệnh dưới đây sẽ tạo một tệp nén có tên 'MyImages-17-11-2023.tar.gz'
cho thư mục '/home/MyImages'. (Lưu ý: 'tar.gz'
và 'tgz'
là các thuật ngữ có thể thay thế cho nhau).
tar cvzf MyImages-17-11-2023.tar.gz /home/tecmint/MyImages
OR
tar cvzf MyImages-17-11-2023.tgz /home/tecmint/MyImages
3. Tạo tệp tar.bz2 trong Linux
Tính năng bz2 nén và tạo tệp lưu trữ có kích thước nhỏ hơn so với gzip. Tuy nhiên, phương pháp nén bz2 yêu cầu thời gian nén và giải nén cao hơn, trong khi gzip nhanh hơn cả hai quy trình.
Để tạo một tệp tar mới được nén theo mức nén cao có tên Phpfiles-org.tar.bz2 bằng cách gói tất cả các tệp và thư mục trong thư mục /home/php, sử dụng tùy chọn -j
, yêu cầu tar sử dụng thuật toán nén bzip2, giúp giảm kích thước tệp để lưu trữ và chuyển dữ liệu hiệu quả hơn.
Lưu ý: tar.bz2 và tbz là các thuật ngữ tương tự, đều đề cập đến tb2.
tar cvfj Phpfiles-org.tar.bz2 /home/tecmint/php
OR
tar cvfj Phpfiles-org.tar.tbz /home/tecmint/php
OR
tar cvfj Phpfiles-org.tar.tb2 /home/tecmint/php
4. Giải nén tệp lưu trữ Tar
Để giải nén hoặc trích xuất một tệp tar, chỉ cần thực thi 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 có tên ‘tecmint-17-11-2023.tar‘ trong thư mục làm việc hiện tại.
tar -xvf tecmint-17-11-2023.tar
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).
tar -xvf tecmint-17-11-2023.tar -C /home/tecmint/
5. Giải nén tệp lưu trữ tar.gz nén
Để giải nén nội dung của tệp lưu trữ nén tar có tên “MyImages-17-11-2023.tar.gz“, sử dụng lệnh sau.
tar -xvf MyImages-17-11-2023.tar.gz
Nếu bạn muốn giải nén vào một thư mục khác, chỉ cần sử dụng tùy chọn -C
, nó sẽ giải nén các tệp vào thư mục đã chỉ định như được hiển thị bên dưới.
tar -xvf MyImages-17-11-2023.tar.gz -C /home/tecmint/
6. Giải nén tệp lưu trữ tar.bz2
Để giải nén tệp tar.bz2 đã được nén cao, chỉ cần sử dụng lệnh sau, nó sẽ giải nén tất cả các tệp từ tệp lưu trữ.
tar -xvf Phpfiles-org.tar.bz2
7. Danh sách nội dung của tệp lưu trữ tar
Để liệt kê hoặc xem nội dung của tệp lưu trữ tar, chỉ cần chạy lệnh sau với tùy chọn -t
(liệt kê nội dung), nó sẽ hiển thị danh sách chi tiết các tệp và thư mục nằm trong tệp lưu trữ 'tecmint-17-11-2023.tar'.
tar -tvf tecmint-17-11-2023.tar
8. Xem nội dung tệp lưu trữ tar.gz
Lệnh dưới đây sẽ hiển thị danh sách chi tiết các tệp và thư mục nằm trong tệp lưu trữ “MyImages-17-11-2023.tar.gz”.
tar -tvf MyImages-17-11-2023.tar.gz
9. In nội dung tệp lưu trữ tar.bz2
Lệnh sau đây cung cấp một bản tổng quan về nội dung bên trong tệp lưu trữ “Phpfiles-org.tar.bz2” mà không cần giải nén các tệp.
tar -tvf Phpfiles-org.tar.bz2
10. Giải nén một tệp duy nhất từ tệp lưu trữ
Để giải nén một tệp duy nhất có tên wp-cron.php
từ tệp lưu trữ Phpfiles-org.tar.bz2, sử dụng lệnh sau. Hãy chắc chắn cung cấp đúng đường dẫn đến tệp bạn muốn giải nén.
tar -xvf Phpfiles-org.tar.bz2 home/tecmint/php/wp-cron.php
11. Giải nén nhiều tệp từ tệp lưu trữ
Để giải nén hoặc trích xuất nhiều tệp từ các tệp lưu trữ tar
, tar.gz
, và tar.bz2
, sử dụng lệnh sau, nó sẽ giải nén các tệp từ các tệp lưu trữ được chỉ định.
tar -xvf tecmint-17-11-2023.tar "file1" "file2"
tar -zxvf MyImages-17-11-2023.tar.gz "file1" "file2"
tar -jxvf Phpfiles-org.tar.bz2 "file1" "file2"
12. Giải nén một nhóm tệp sử dụng ký hiệu sử dụng ký tự đại diện trong Linux
Để giải nén một nhóm tệp, chúng ta sử dụng giải nén dựa trên ký tự đại diện. Ví dụ, để giải nén một nhóm tất cả các tệp có mẫu bắt đầu bằng.php từ các tệp lưu trữ tar
, tar.gz
vàtar.bz2
, sử dụng:
tar -xvf Phpfiles-org.tar --wildcards '*.php'
tar -zxvf Phpfiles-org.tar.gz --wildcards '*.php'
tar -jxvf Phpfiles-org.tar.bz2 --wildcards '*.php'
13. Thêm tệp vào tệp lưu trữ hiện có
Để thêm tệp hoặc thư mục vào các tệp lưu trữ tar
, tar.gz
và tar.bz2
đã tồn tại, sử dụng tùy chọn -r
, nó sẽ thêm các tệp vào tệp lưu trữ hiện có.
tar -rvf tecmint-14-09-12.tar xyz.txt
tar -rvf MyImages-14-09-12.tar.gz xyz.txt
tar -rvf Phpfiles-org.tar.bz2 xyz.txt
14. Xác minh tệp lưu trữ Tar
Lệnh sau đây sẽ hiển thị danh sách chi tiết các tệp và thư mục nằm trong tệp lưu trữ đã chỉ định, cho phép bạn xác minh nội dung của tệp lưu trữ trực quan. Nếu tệp lưu trữ bị hỏng hoặc không hoàn chỉnh, quá trình xác minh này có thể phát hiện lỗi trong quá trình liệt kê.
tar -tvf Phpfiles-org.tar.bz2
15. Kiểm tra kích thước của tệp lưu trữ Tar
Để kiểm tra kích thước của bất kỳ tệp lưu trữ tar
, tar.gz
và tar.bz2
, sử dụng lệnh sau, nó sẽ hiển thị kích thước của tệp lưu trữ trong kilobyte (KB).
tar -czf - tecmint-14-09-12.tar xyz.txt | wc -c
tar -czf - MyImages-14-09-12.tar.gz xyz.txt | wc -c
tar -czf - Phpfiles-org.tar.bz2 xyz.txt | wc -c
16. Loại trừ tệp khi tạo tệp lưu trữ Tar
Để loại trừ một số tệp và thư mục trong quá trình tạo tệp lưu trữ tar, bạn có thể sử dụng lệnh sau với tùy chọn --exclude
, nó sẽ loại trừ tệp và thư mục khi tạo tệp lưu trữ tar như được hiển thị dưới đây.
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 tôi đã 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 với các phần mở rộng tệp cụ thể (.txt)
khi tạo tệp lưu trữ tar, hãy sử dụng:
tar --exclude='*.txt' -zcvf backup.tar.gz /home/tecmint
17. Xóa tệp từ tệp lưu trữ Tar
Lệnh tar sau đây sẽ xóa một tệp hoặc thư mục khỏi tệp tar đã được tạo sẵn bằng tùy chọn --delete
, như được hiển thị.
tar --delete -f backup.tar.gz file1.txt
tar --delete -f backup.tar.gz '/home/tecmint/uploads'
18. Trích xuất phần mở rộng tệp từ tệp lưu trữ tar
Lệnh tar sau đây chỉ giải nén các tệp có phần mở rộng cụ thể .png
từ tệp lưu trữ tar sử dụng tùy chọn --wildcards
như được hiển thị.
tar -xvf backup.tar.gz --wildcards '*.png'
19. Cách sử dụng và tùy chọn Tar command
Việc hiểu các tùy chọn khác nhau và cách sử dụng lệnh tar dưới đây là rất quan trọng để nén, giải nén và trích xuất tệp hiệu quả.
-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ệp tin lưu trữ.
-t
– xem nội dung của tệp lưu trữ.
-u
– mở rộng và thêm vào một tệp lưu trữ hiện có.
-j
– lọc tệp lưu trữ qua bzip2.
-z
– lọc tệp lưu trữ 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ữ với nhau.
--wildcards
– Đặt 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ữ.
Cho đến đây, hy vọng các ví dụ sử dụng lệnh tar ở trên đủ để bạn có thể học và để biết thêm thông tin, vui lòng sử dụng lệnh man tar.
# man tar
Qua 18 ví dụ về tar command trong Linux, chúng ta đã thấy được sức mạnh linh hoạt của công cụ này trong việc nén, giải nén và quản lý các tập tin và thư mục. Từ việc tạo ra các bản sao dự phòng đến việc trích xuất các tập tin từ các file nén, tar command không chỉ là một công cụ quan trọng mà còn là một phần không thể thiếu của quá trình quản lý dữ liệu trong hệ thống Linux.