Cách giải nén tệp từ tệp .tar.gz hoặc .tar.bz2 trên Linux

Tệp Tar là các tệp nén. Bạn sẽ gặp chúng thường xuyên khi sử dụng bản phân phối Linux như Ubuntu hoặc thậm chí khi sử dụng thiết bị đầu cuối trên macOS. Dưới đây là cách trích xuất — hoặc gỡ bỏ — nội dung của tệp tar, còn được gọi là tarball.

.Tar.gz và .tar.bz2 có nghĩa là gì?

Các tệp có .tar.gz hoặc một .tar.bz2 phần mở rộng là các tệp lưu trữ được nén. Một tệp chỉ có một .tar tiện ích mở rộng là không nén, nhưng chúng sẽ rất hiếm.

Các .tar một phần của phần mở rộng tệp là viết tắt của tcon vượn archive, và là lý do mà cả hai loại tệp này được gọi là tệp tar. Tệp Tar có niên đại từ năm 1979 khi nhựa đường lệnh được tạo để cho phép quản trị viên hệ thống lưu trữ tệp vào băng. Bốn mươi năm sau, chúng tôi vẫn đang sử dụng nhựa đường lệnh giải nén các tệp tar vào ổ cứng của chúng tôi. Ai đó ở đâu đó có lẽ vẫn đang sử dụng nhựa đường bằng băng.

Các.gz hoặc là .bz2 hậu tố phần mở rộng cho biết rằng kho lưu trữ đã được nén, sử dụng gzip hoặc là bzip2 thuật toán nén. Các nhựa đường lệnh sẽ hoạt động tốt với cả hai loại tệp, vì vậy không quan trọng phương pháp nén nào đã được sử dụng — và nó sẽ khả dụng ở mọi nơi bạn có Bash shell. Bạn chỉ cần sử dụng phù hợp nhựa đường tùy chọn dòng lệnh.

Giải nén tệp từ tệp Tar

Giả sử bạn đã tải xuống hai tệp bản nhạc. Một tệp được gọi là ukulele_songs.tar.gz , cái kia được gọi là guitar_songs.tar.bz2. Các tệp này nằm trong thư mục Tải xuống.

Chúng ta hãy trích xuất các bài hát ukulele:

tar -xvzf ukulele_songs.tar.gz 

Khi các tệp được giải nén, chúng được liệt kê trong cửa sổ đầu cuối.

Các tùy chọn dòng lệnh mà chúng tôi đã sử dụng là:

  • -x: Giải nén, lấy các tập tin từ tập tin tar.
  • -v: Chi tiết, liệt kê các tệp khi chúng đang được giải nén.
  • -z: Gzip, sử dụng gzip để giải nén tệp tar.
  • -f: Tệp, tên của tệp tar mà chúng tôi muốn nhựa đường để làm việc với. Tùy chọn này phải được theo sau bởi tên của tệp tar.

Liệt kê các tệp trong thư mục với ls và bạn sẽ thấy rằng một thư mục đã được tạo có tên là Bài hát Ukulele. Các tệp được giải nén nằm trong thư mục đó. Thư mục này đến từ đâu? Nó được chứa trong nhựa đường và đã được giải nén cùng với các tệp.

Bây giờ chúng ta hãy trích xuất các bài hát guitar. Để làm điều này, chúng tôi sẽ sử dụng gần như chính xác lệnh như trước đây nhưng có một điểm khác biệt quan trọng. Các .bz2 hậu tố mở rộng cho chúng ta biết nó đã được nén bằng lệnh bzip2. Thay vì sử dụng-z (gzip), chúng tôi sẽ sử dụng -j (bzip2) tùy chọn.

tar -xvjf guitar_songs.tar.bz2

Một lần nữa, các tệp được liệt kê vào thiết bị đầu cuối khi chúng được giải nén. Để rõ ràng, các tùy chọn dòng lệnh mà chúng tôi đã sử dụng với nhựa đường cho .tar.bz2 tệp là:

  • -x: Giải nén, truy xuất các tệp từ tệp tar.
  • -v: Chi tiết, liệt kê các tệp khi chúng đang được giải nén.
  • -j: Bzip2, sử dụng bzip2 để giải nén tệp tar.
  • -f: Tệp, tên của tệp tar mà chúng ta muốn tar làm việc.

Nếu chúng tôi liệt kê các tệp trong thư mục Tải xuống, chúng tôi sẽ thấy rằng một thư mục khác có tên là Bài hát Guitar đã được tạo.

Chọn vị trí để giải nén tệp sang

Nếu chúng tôi muốn giải nén các tệp đến một vị trí khác với thư mục hiện tại, chúng tôi có thể chỉ định một thư mục đích bằng cách sử dụng -C (thư mục chỉ định) tùy chọn.

tar -xvjf guitar_songs.tar.gz -C ~ / Tài liệu / Bài hát /

Nhìn vào thư mục Tài liệu / Bài hát của chúng tôi, chúng tôi sẽ thấy thư mục Bài hát Guitar đã được tạo.

Lưu ý rằng thư mục đích phải đã tồn tại, nhựa đường sẽ không tạo ra nó nếu nó không có mặt. Nếu bạn cần tạo một thư mục và có nhựa đường giải nén các tệp vào tất cả trong một lệnh, bạn có thể thực hiện điều đó như sau:

mkdir -p ~ / Tài liệu / Bài hát / Đã tải xuống && tar -xvjf guitar_songs.tar.gz -C ~ / Tài liệu / Bài hát / Đã tải xuống /

Các -p (cha mẹ) lựa chọn nguyên nhân mkdir để tạo bất kỳ thư mục mẹ nào được yêu cầu, đảm bảo thư mục đích được tạo.

Tìm kiếm bên trong tệp Tar trước khi giải nén chúng

Cho đến nay, chúng tôi chỉ thực hiện một bước nhảy vọt về niềm tin và trích xuất các tệp mà chúng tôi chưa nhìn thấy. Bạn có thể muốn nhìn trước khi nhảy. Bạn có thể xem lại nội dung của một nhựa đường trước khi bạn giải nén nó bằng cách sử dụng -t (danh sách) tùy chọn. Thường thuận tiện để chuyển đầu ra thông qua ít hơn chỉ huy.

tar -tf ukulele_songs.tar.gz | ít hơn

Lưu ý rằng chúng tôi không cần sử dụng -z tùy chọn để liệt kê các tệp. Chúng tôi chỉ cần thêm -z tùy chọn khi chúng ta đang giải nén các tập tin từ một .tar.gz tập tin. Tương tự như vậy, chúng tôi không cần -j tùy chọn để liệt kê các tệp trong một tar.bz2 tập tin.

Di chuyển qua đầu ra, chúng ta có thể thấy rằng mọi thứ trong tệp tar được giữ trong một thư mục có tên là Bài hát Ukulele, và trong thư mục đó, có các tệp và các thư mục khác.

Chúng ta có thể thấy rằng thư mục Ukulele Songs chứa các thư mục được gọi là Random Songs, Ramones và Possibles.

Để giải nén tất cả các tệp từ một thư mục trong tệp tar, hãy sử dụng lệnh sau. Lưu ý rằng đường dẫn được đặt trong dấu ngoặc kép vì có khoảng trắng trong đường dẫn.

tar -xvzf ukulele_songs.tar.gz "Bài hát ukulele / Ramones /"

Để giải nén một tệp, hãy cung cấp đường dẫn và tên của tệp.

tar -xvzf ukulele_songs.tar.gz "Bài hát ukulele / 023 - My Babe.odt"

Bạn có thể trích xuất một loạt các tệp bằng cách sử dụng các ký tự đại diện, trong đó * đại diện cho bất kỳ chuỗi ký tự nào và ? đại diện cho bất kỳ ký tự đơn lẻ nào. Sử dụng ký tự đại diện yêu cầu sử dụng --cards Lựa chọn.

tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Songs / Possibles / B *"

Giải nén tệp mà không cần giải nén thư mục

Nếu bạn không muốn tạo lại cấu trúc thư mục trong tệp tar trên ổ cứng của mình, hãy sử dụng --strip-thành phần Lựa chọn. Các --strip-thành phần tùy chọn yêu cầu một tham số số. Con số đại diện cho bao nhiêu cấp độ của thư mục để bỏ qua. Các tệp từ các thư mục bị bỏ qua vẫn được giải nén, nhưng cấu trúc thư mục không được sao chép trên ổ cứng của bạn.

Nếu chúng tôi chỉ định --strip-components = 1 với tệp tar mẫu của chúng tôi, thư mục trên cùng của Bài hát Ukulele trong tệp tar không được tạo trên ổ cứng. Các tệp và thư mục sẽ được trích xuất vào thư mục đó được trích xuất trong thư mục đích.

tar -xvzf ukulele_songs.tar.gz --strip-components = 1

Chỉ có hai cấp độ lồng thư mục trong tệp tar mẫu của chúng tôi. Vì vậy, nếu chúng ta sử dụng --strip-components = 2, tất cả các tệp được trích xuất trong thư mục đích và không có thư mục nào khác được tạo.

tar -xvzf ukulele_songs.tar.gz --strip-components = 2

Nếu bạn nhìn vào trang người dùng Linux, bạn sẽ thấy rằng nhựa đường phải trở thành một ứng cử viên sáng giá cho danh hiệu “lệnh có nhiều tùy chọn dòng lệnh nhất”. Rất may, để cho phép chúng tôi trích xuất các tệp từ .tar.gztar.bz2 các tệp có mức độ kiểm soát chi tiết tốt, chúng tôi chỉ cần nhớ một số tùy chọn này.


$config[zx-auto] not found$config[zx-overlay] not found