Nếu bạn đang tìm hiểu thế giới rộng lớn của mã nguồn mở, rất có thể bạn sẽ gặp phải các tệp .tar.gz thường xuyên. Các gói mã nguồn mở thường có sẵn để tải xuống ở định dạng .tar.gz và .zip.
Lệnh tar được sử dụng để tạo ra file nén tar bằng cách chuyển đổi một nhóm các tập tin vào một file nén. Nó hỗ trợ một loạt các chương trình nén như gzip, bzip2, lzip, lzma, lzop, xz và compress. Tar ban đầu được thiết kế để tạo các archive file để lưu trữ các tệp trên băng từ (magnetic tape), đó là lý do tại sao nó có tên là “ Tape Archive”.
Gzip là thuật toán phổ biến nhất để nén các tệp tar. Theo quy ước, tên của archive tar được nén bằng gzip phải kết thúc bằng .tar.gz hoặc .tgz .
Nói tóm lại, tệp có đuôi .tar.gz là tệp lưu trữ .tar được nén bằng gzip.
Lệnh tar cũng có thể được sử dụng để giải nén các tar file, hiển thị danh sách các tập tin có trong các file nén, thêm tệp bổ sung vào một file nén hiện có, cũng như một loạt các hành động khác.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách giải nén (hoặc giải nén) tệp lưu trữ tar.gz và tgz .
Giải nén tệp tar.gz
Hầu hết các bản phân phối Linux và macOS đều được cài đặt sẵn lệnh tar theo mặc định.
Để giải nén tệp tar.gz, hãy sử dụng tùy chọn --extract
( -x
) và chỉ định tên tệp lưu trữ sau tùy chọn f
:
tar -xf archive.tar.gz
Lệnh tar sẽ tự động phát hiện loại nén cũng sẽ giải nén archive. Lệnh tương tự có thể được sử dụng để giải nén các tar archive được nén bằng các thuật toán khác như .tar.bz2 .
Nếu bạn là người dùng Máy tính để bàn và command line không phải là thứ bạn dễ dùng, bạn có thể sử dụng Trình quản lý tệp của mình. Để giải nén (giải nén) tệp tar.gz, chỉ cần nhấp chuột phải vào tệp bạn muốn giải nén và chọn “Giải nén (extract)”. Người dùng Windows sẽ cần một công cụ có tên 7zip để giải nén các tệp tar.gz.
Tùy chọn -v
sẽ làm cho lệnh tar rõ ràng hơn và in tên của các tập tin được trích ra trên terminal.
tar -xvf archive.tar.gz
Theo mặc định, tar trích xuất nội dung lưu trữ trong thư mục làm việc hiện tại . Sử dụng --directory
( -C
) để giải nén các tệp lưu trữ trong một thư mục cụ thể:
Ví dụ: để giải nén nội dung lưu trữ vào thư mục /home/hocdevops/files
, bạn có thể sử dụng:
tar -xf archive.tar.gz -C /home/hocdevops/files
Giải nén các tệp cụ thể từ tệp tar.gz
Để trích xuất (các) tệp cụ thể từ tệp tar.gz, hãy thêm một danh sách các tên tệp được phân tách bằng dấu cách sẽ được giải nén sau tên tệp lưu trữ:
tar -xf archive.tar.gz file1 file2
Khi giải nén các tệp, bạn phải cung cấp tên chính xác của chúng bao gồm cả đường dẫn, như được in bởi --list
( -t
).
Giải nén một hoặc nhiều thư mục từ file nén cũng giống như giải nén tệp:
tar -xf archive.tar.gz dir1 dir2
Nếu bạn cố gắng giải nén một tệp không tồn tại, một thông báo lỗi tương tự như sau sẽ được hiển thị:
tar -xf archive.tar.gz README
tar: README: Not found in archive tar: Exiting with failure status due to previous errors
Bạn cũng có thể trích xuất tệp từ tệp tar.gz dựa trên mẫu ký tự đại diện, bằng cách sử dụng tùy chọn --wildcards
và trích dẫn mẫu để ngăn trình shell thông dịch nó.
Ví dụ: để trích xuất các tệp có tên kết thúc bằng .js
(tệp Javascript), bạn sẽ sử dụng:
tar -xf archive.tar.gz --wildcards '*.js'
Giải nén tệp tar.gz từ stdin
Nếu bạn đang giải nén tệp tar.gz được nén bằng cách đọc tệp lưu trữ từ stdin (thường thông qua pipeline), bạn cần chỉ định tùy chọn giải nén. Tùy chọn cho tar đọc lưu trữ thông qua gzip là -z
.
Trong ví dụ sau, chúng ta đang tải xuống các nguồn Blender bằng wget lệnh và chuyển đầu ra của nó tới lệnh tar:
wget -c https://download.blender.org/source/blender-2.80.tar.gz -O - | sudo tar -xz
Nếu bạn không chỉ định một tùy chọn giải nén tar sẽ cho biết bạn nên sử dụng tùy chọn nào:
tar: Archive is compressed. Use -z option tar: Error is not recoverable: exiting now
Liệt kê tệp tar.gz
Để liệt kê nội dung của tệp tar.gz, hãy sử dụng tùy chọn --list
( -t
):
tar -tf archive.tar.gz
Đầu ra sẽ giống như sau:
file1 file2 file3
Nếu bạn thêm tùy chọn --verbose
( -v
), tar sẽ in thêm thông tin, chẳng hạn như chủ sở hữu, kích thước tệp, dấu thời gian .. vv:
tar -tvf archive.tar.gz
Output: -rw-r--r-- khaind/users 0 2021-02-15 01:19 file1 -rw-r--r-- khaind/users 0 2021-02-15 01:19 file2 -rw-r--r-- khaind/users 0 2021-02-15 01:19 file3
Phần kết luận
Tệp tar.gz là tệp lưu trữ Tar được nén bằng Gzip. Để giải nén tệp tar.gz, hãy sử dụng lệnh tar -xf
theo sau là tên tệp nén.
Nếu bạn có bất kỳ câu hỏi nào, hãy để lại bình luận bên dưới.