in

18 ví dụ để biết dùng lệnh Tar trên Linux

Tar nó gần giống như là Zip, giúp nén một thư viện các tập tin và cả thư mục. Lệnh tar được sử dụng để nhóm và nén một tập hợp các tập tin và thư mục thành file lưu trữ được thường được gọi là tarball hoặc tar, gzip và bzip trong Linux.

Trong bài viết này, mình sẽ thông qua 18 ví dụ sẽ đưa ra các vấn đề bạn sẽ cần khi sử dụng lệnh tar bao gồm cách tạo tập tin lưu trữ bằng cách sử dụng chuẩn nén (tar, tar.gz và tar.bz2), cách trích xuất tập tin, xem nội dung của tập tin, xác minh một tập tin, thêm tập tin hoặc thư mục vào file tar có sẵn, ước tính kích thước của tập tin lưu trữ tar,…

Tạo tập tin lưu trữ tar

Lệnh ví dụ dưới đây sẽ tạo một tập tin lưu trữ tar có tên nhatphuc-14-06-20.tar cho một thư mục /home/nhatphuc trong thư mục làm việc hiện tại.

# tar -cvf nhatphuc-14-06-20.tar /home/nhatphuc/

Chúng ta hãy cùng xem các tham số để hiểu lệnh trên:

  • c – Tạo một tập tin lưu trữ .tar mới.
  • v – Hiển thị rõ ràng tiến trình tạo tập tin .tar.
  • f – Loại tên tập tin của tệp lưu trữ.

Tạo tập tin lưu trữ tar.gz

Để tạo một tệp lưu trữ gzip nén, bạn thêm tham số là z . Ví dụ, lệnh dưới đây sẽ tạo tập tin MyImages-14-06-20.tar.gz được nén cho thư mục /home/MyImages. (Lưu ý: cả tar.gz và tgz đều giống nhau),

# tar cvzf MyImages-14-06-20.tar.gz /home/MyImages
HOẶC
# tar cvzf MyImages-14-06-20.tgz /home/MyImages

Tạo tập tin lưu trữ tar.bz2

Chuẩn bz2 có thể nén và tạo file nhỏ hơn kích thước của gzip . Ngược lại quá trình nén bz2 mất nhiều thời gian hơn để nén và giải nén các tệp so với gzip. Để tạo tập tin tar được nén mạnh nhất, bạn hãy sử dụng tùy chọn là j. Lệnh ví dụ sau sẽ tạo tệp files.tar.bz2 cho một thư mục /home/php . (Lưu ý: tar.bz2 và tbz tương tự như tb2).

# tar cvfj files.tar.bz2 /home/php
HOẶC
# tar cvfj files.tar.tbz /home/php
HOẶC 
# tar cvfj files.tar.tb2 /home/php

Giải nén file tar

Để giải nén một tập tin tar, chỉ cần sửa dụng tham số x trong câu lệnh tar (x là viết tắt của extract – giải nén). Ví dụ, lệnh dưới đây sẽ giải nén tập tin tệp public_html-2020.tar trong thư mục làm việc hiện tại. Nếu bạn muốn giải nén trong một thư mục khác thì sử dụng tùy chọn là -C (thư mục được chỉ định).

# tar -xvf public_html-2020.tar

## Giải nén trong Thư mục được chỉ định ##
# tar -xvf public_html-2020.tar -C /home/public_html/

Giải nén tập tin tar.gz

Để giải nén tập tin tar.gz, chỉ cần chạy lệnh như bên dưới. Nếu muốn giải nén vào một thư mục khác, bạn thêm tham số -C và đường dẫn vào là được.

# tar -xvf thumbnails-2020.tar.gz -C /home/thumbnails

Giải nén tập tin tar.bz2

Để giải nén tập tin tar.bz2, chỉ cần sử dụng lệnh như bên dưới.

# tar -xvf videos-2020.bz2

Xem danh sách nội dung của tập tin lưu trữ tar

Để liệt kê nội dung các tập tin được lưu trữ trong file tar, bạn cchỉ cần chạy lệnh tar với tham số t (liệt kê nội dung). Lệnh dưới đây sẽ liệt kê nội dung của tập tin uploads.tar.

# tar -tvf uploads.tar

Nội dung liệt kê sẽ dạng nhau dưới:

-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

Liệt kê nội dung tập tin lưu trữ tar.gz

Sử dụng lệnh dưới để liệt kê nội dung của tệp tar.gz.

# tar -tvf nhatphuc.com.tar.gz

Liệt kê nội dung tập tin tar.bz2

Để liệt kê nội dung của tệp tar.bz2, hãy dùng lệnh sau.

# tar -tvf php.tar.bz2

Giải nén một tập tin trong file tar

Để trích xuất một tập tin có tên là uncover.sh từ file uncover.tar, hãy sử dụng lệnh sau.

# tar -xvf uncover.tar uncover.sh
HOẶC
# tar --extract --file=uncover.tar uncover.sh

Giải nén một tập tin trong file tar.gz

Để trích xuất một tập tin nhatphucbackup.xml từ tập tin nhatphucbackup.tar.gz , hãy sử dụng lệnh như sau.

# tar -zxvf nhatphucbackup.tar.gz nhatphucbackup.xml
HOẶC
# tar --extract --file=nhatphucbackup.tar.gz nhatphucbackup.xml

Giải nén một tập tin trong file tar.bz2

Để trích xuất một tập tin có tên index.php từ tập tin phpbackup.tar.bz2, hãy sử dụng tùy chọn sau.

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

Giải nén nhiều tập tin từ file tar, tar.gz và tar.bz2

Để lấy ra cùng lúc nhiều tập tin từ file tar, tar.gz và tar.bz2. Bạn có thể theo ví dụ bên dưới:

# tar -xvf nhatphuc-2020.tar "file 1" "file 2" 

# tar -zxvf nhatphuc-2020.tar.gz "file 1" "file 2" 

# tar -jxvf nhatphuc-2020.tar.bz2 "file 1" "file 2"

Trong đó file 1, file 2 lần lượt là tên file bạn muốn giải nén.

Giải nén nhiều tập tin bằng cách dùng ký tự đại diện

Để trích xuất một nhóm các tập tin, chúng ta có thể dùng ký tự đại diện. Ví dụ: để giải nén một nhóm tất cả các tập tin có đuôi là .php từ tập tin tar, tar.gz và tar.bz2, bạn dùng một trong các lệnh dưới:

# tar -xvf nhatphuc.tar --wildcards '*.php'

# tar -zxvf nhatphuc.tar.gz --wildcards '*.php'

# tar -jxvf nhatphuc.tar.bz2 --wildcards '*.php'

Thêm tập tin hoặc thư mục vào file tar

Để thêm tập tin hoặc thư mục vào file tar hiện có, bạn có thể thêm tham số r . Ví dụ: bạn muốn thêm tập tin xyz.txt và thư mục php vào tập tin nhatphuc-2020.tar đã có.

# tar -rvf nhatphuc-2020.tar xyz.txt

# tar -rvf nhatphuc-2020.tar php

Thêm tập tin hoặc thư mục vào file tar.gz và tar.bz2

Không có nhé bạn. Lệnh tar không có tùy chọn để thêm tập tin hoặc thư mục vào file tar.gz và tar.bz2 đã nén hiện có, khi chạy lệnh giống ví dụ 15 bạn sẽ nhận báo lỗi.

Xác thực tập tin tar, tar.gz và tar.bz2

Để xác minh bất kỳ tập tin nén nào, bạn hãy sử dụng tham số là W (xác minh). Ví dụ:

# tar tvfW nhatphuc-2020.tar

Kiểm tra kích thước của tập tin tar, tar.gz và tar.bz2

Để kiểm tra kích thước của bất kỳ tập tin tar, tar.gz và tar.bz2 nào, hãy sử dụng lệnh sau.

# tar -czf - nhatphuc-2020.tar | wc -c

Mình cũng thường hay quên, có khi cần giải nén một file tar hay cần nhóm một mớ file lại thành tar.gz cho tiện lưu trữ nhưng ít xài nên hay quên. Mình lưu lại bài này để có quên thì lấy ra xem, và cũng hy vọng các bạn cũng thấy có ích.

Written by Linh Nguyễn

Mình đang thực hiện trang Trải Nghiệm Số tại địa chỉ trainghiemso.vn, ngoài ra còn là BTV Công Nghệ tại báo VietNamNet. Trang blog này mình tổng hợp lại các bài viết do mình thực hiện, cũng như viết lảm nhảm cho vui.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments