18 ví dụ về tar command trong Linux

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.

tar - A Linux Archiving Utility

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/
Create Tar Archive File

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''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
Create a Compressed Tar Archive

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.bz2tbz 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
Create a tar.bz2 file Linux

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
View Tar Contents Without Extracting

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
View Tar.gz Contents Without Extracting

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
View Tar Contents Without Extracting

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
Extract File From Tar Archive

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.gztar.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.gztar.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.gztar.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.