Nắm vững cách sử dụng lệnh tar
trong Linux để thao tác với kho lưu trữ một cách hiệu quả. Bài viết sẽ hướng dẫn chi tiết từ cơ bản đến nâng cao, bao gồm tạo, giải nén, trích xuất, thêm, xóa file, và quản lý kho lưu trữ tar một cách hiệu quả.
Lệnh tar trong Linux là gì?
Lệnh tar
trong Linux là một công cụ mạnh mẽ dùng để tạo, quản lý và giải nén các tập tin lưu trữ. Chúng hoạt động bằng cách gom nhiều tệp và thư mục thành một tập tin duy nhất, được gọi là kho lưu trữ. Kho lưu trữ này có thể được nén bằng các thuật toán khác nhau để giảm kích thước.
Công dụng chính của lệnh tar
:
- Tạo kho lưu trữ: Sử dụng tùy chọn
c
để tạo kho lưu trữ từ các tệp và thư mục được chỉ định. - Giải nén kho lưu trữ: Sử dụng tùy chọn
x
để giải nén kho lưu trữ sang một vị trí cụ thể. - Liệt kê nội dung kho lưu trữ: Sử dụng tùy chọn
t
để hiển thị danh sách các tệp và thư mục bên trong kho lưu trữ. - Thêm tệp vào kho lưu trữ hiện có: Sử dụng tùy chọn
r
để thêm tệp hoặc thư mục vào kho lưu trữ đã có. - Xóa tệp khỏi kho lưu trữ: Sử dụng tùy chọn
d
để xóa tệp khỏi kho lưu trữ. - Xem thông tin về kho lưu trữ: Sử dụng tùy chọn
v
để hiển thị thông tin chi tiết về kho lưu trữ, chẳng hạn như tên tệp, kích thước và thời gian sửa đổi.
Xem thêm: Tổng hợp 37 câu lệnh cơ bản trong Linux
Cách sử dụng lệnh tar trong Linux
File archive (lưu trữ) là một loại file gồm một hay nhiều file khác nhau cùng với các metadata của chúng. Các file archive này được dùng để thu thập và nhóm nhiều file dữ liệu với nhau để lưu trữ dễ dàng hơn, hoặc giúp tiết kiệm dung lượng lưu trữ.
Lệnh tar
có cú pháp chung như sau:
tar [options] [file archive] [thư mục hoặc directory cần lưu trữ]
Các option gồm có:
- -c : Tạo Archive.
- -x : Giải nén archive.
- -f : Tạo archive với tên file được xác định sẵn.
- -t : Liệt kê các file trong archive.
- -u : Tạo archive rồi thêm vào file archive có sẵn.
- -v : Hiển thị thông tin đầy đủ (verbose).
- -A : Nối các file archive.
- -z : Zip, yêu cầu tạo file tar bằng gzip.
- -j : Lọc archive bằng tbzip.
- -W : Xác thực file archive.
- -r : Thêm hoặc cập nhật file, thư mục trong file .tar có sẵn.
1. Tạo một Archive tar chưa nén bằng option -cvf
Lệnh dưới đây dùng để tạo một file tar có tên file.tar
, đây chính là file Archive của mọi file có phần mở rộng .c
trong thư mục hiện tại:
$ tar cvf file.tar *.c
Output:
os2.c
os3.c
os4.c
2. Giải nén các file trong Archive bằng option -xvf
$ tar -xvf compress_file.tar
3. Nén gzip Archive tar bằng option -z
Tạo một file tar có tên file.tar.gz
, đây chính là Archive của các file .c
:
$ tar cvzf file.tar.gz *.c
Sau khi nén bạn sẽ có được các file như sau:
4. Giải nén một Archive gzip tar bằng option -xvzf
Lệnh sau có nhiệm vụ giải nén mọi file từ archive tar có tên file.tar.gz
:
$ tar xvzf file.tar.gz
5. Tạo archive đã được nén bằng option -j
Lệnh dưới đây dùng để nén rồi tạo file archive, có kích thước nhỏ hơn gzip
.
$ tar cvfj file.tar.tbz example.cpp
Output:
$tar cvfj file.tar.tbz example.cpp
example.cpp
$tar tvf file.tar.tbz
-rwxrwxrwx root/root 94 2017-09-17 02:47 example.cpp
6. Untar một file tar hoặc thư mục trong Linux
Lệnh dưới đây dùng để “untar” một file trong thư mục hiện tại, hoặc có thể chỉ định đường dẫn đến thư mục bằng option -C:
$ tar xvfj file.tar
or
$ tar xvfj file.tar -C path of file in directory
7. Untar nhiều file tar
, tar.gz
, tar.tbz
trong Linux
Lệnh này dùng để giải nén hoặc untar nhiều file từ file tar
, tar.gz
và tar.bz2. Giả sử ta cần giải nén fileA và fileB từ file archive:
$ tar xvf file.tar "fileA" "fileB"
or
$ tar zxvf file1.tar.gz "fileA" "fileB"
or
$ tar jxvf file2.tar.tbz "fileA" "fileB"
8. Kiểm tra kích thước của file tar
, tar.gz
và tar.tbz
trong Linux
tar cz -c file.tar | wc -c
9. Cập nhật file tar
hiện có trong Linux
tar rvf file.tar *.c
Output:
os1.c
10. Liệt kê nội dung và chỉ định tar file bằng option -tf
Lệnh sau dùng để hiển thị danh sách toàn bộ các file archive:
$ tar tf file.tar
Output:
example.cpp
Xem thêm: Hướng dẫn sử dụng lệnh ps trong Linux
11. Sử dụng pipe cho lệnh grep
để tìm kiếm
Ví dụ lệnh dưới đây dùng để hiển thị phần văn bản hoặc hình ảnh có trong grep
từ file archive:
$ tar tvf file.tar | grep "text to find"
or
$ tar tvf file.tar | grep "filename.file extension"
12. Tìm tar file bằng cách truyền tên file làm tham số
Lệnh này cho phép xem các file được lưu trữ và thông tin chi tiết của chúng:
$ tar tvf file.tar filename
13. Xem Archive bằng option -tvf
$ tar tvf file.tar
Output như sau:
14. Tìm ảnh ở định dạng .png
Ta có thể sử dụng option --wildcards
để trích xuất những file có phần mở rộng .png
từ file archive .tar
:
$ tar tvf file.tar --wildcards '*.png'
Trong đó, *
là một wildcard đại diện cho mọi file có trong thư mục.
Lời kết
Bài viết này đã hướng dẫn 14 trường hợp sử dụng lệnh tar
phổ biến nhất trong Linux. Giúp bạn thao tác dễ dàng và nhanh chóng hơn khi sử dụng Linux. Chúc bạn thành công!