Cách trích xuất một file hoặc thư mục từ file TAR hoặc TAR.GZ

Tarball (TAR hoặc TAR.GZ) là một tập hợp các file được nhóm lại với nhau dưới dạng một kho lưu trữ duy nhất giúp dễ dàng lưu trữ và chuyển một số lượng lớn file cục bộ hoặc qua internet. Bất cứ khi nào bạn cần các file, bạn chỉ cần giải nén kho lưu trữ.

Hãy xem xét một tình huống trong đó bạn chỉ cần một file duy nhất trong một kho lưu trữ lớn. Trong trường hợp này, thay vì giải nén toàn bộ kho lưu trữ, bạn chỉ cần trích xuất file mình cần. Cùng tìm hiểu chi tiết cách thực hiện qua bài viết sau đây!

Xem nội dung của Tarball

Nếu chỉ muốn xem nội dung của file TAR hoặc TAR.GZ, bạn không cần giải nén file đó. Thay vào đó, hãy sử dụng lệnh sau để xem nội dung bên trong:

tar -tvf [archive.tar]
tar -ztvf [archive.tar.gz]

Thao tác này sẽ in danh sách tất cả các file và thư mục bên trong kho lưu trữ.

Xem nội dung file TAR
Xem nội dung file TAR

Trích xuất một file từ Tarball

Để giải nén một file từ TAR hoặc TAR.GZ, hãy sử dụng định dạng lệnh sau:

tar -xvf [archive.tar] [đường dẫn đến file]
tar -zxvf [archive.tar.gz] [đường dẫn đến file]

Hãy nhớ rằng, bạn sẽ phải cung cấp đường dẫn đầy đủ đến file mình muốn giải nén. Bạn có thể tìm đường dẫn đầy đủ của file hoặc thư mục bằng lệnh tar -tvf [archive.tar].

Để trích xuất file test1.txt từ file test.tartest.tar.gz, các lệnh sẽ là:

tar -xvf test.tar test1.txt
tar -zxvf test.tar.gz test1.txt

Trong đó:

  1. -x được sử dụng để trích xuất các file từ kho lưu trữ
  2. -v được sử dụng để xem tiến trình khi chúng được trích xuất
  3. -f được sử dụng để chỉ định tên tarball
  4. -z dùng để giải nén file TAR.GZ

Các lệnh này sẽ trích xuất file được chỉ định trong thư mục terminal hiện tại.

Giải nén một file từ tar
Giải nén một file từ tar

Trích xuất một thư mục từ Tarball

Tương tự, bạn cũng có thể trích xuất một thư mục từ tarball bằng cú pháp sau:

tar xvf [archive.tar] [đường dẫn đến thư mục]
tar -zxvf [archive.tar.gz] [đường dẫn đến thư mục]

Chẳng hạn, để trích xuất toàn bộ thư mục con test1 từ kho lưu trữ test.tar, bạn cần cung cấp đường dẫn đầy đủ của thư mục, tức là test/test1:

tar -xvf test.tar test/test1

Thao tác này sẽ giải nén toàn bộ thư mục con test/test1 trong thư mục terminal hiện tại.

Giải nén một thư mục từ tar
Giải nén một thư mục từ tar

Trích xuất một file hoặc thư mục vào một thư mục khác

Bạn cũng có thể trích xuất một file hoặc thư mục từ tarball sang một thư mục khác. Để làm điều này, hãy sử dụng cú pháp tương tự như trên nhưng thêm tùy chọn -C theo sau là thư mục đích:

tar -xvf [archive.tar] -C [thư_mục_đích] [file-hoặc-thư mục]
tar -zxvf [archive.tar.gz] -C [thư_mục_đích] [file-hoặc-thư mục]

Giả sử bạn muốn trích xuất một thư mục test2 từ kho lưu trữ test.tar vào thư mục Downloads thay vì thư mục làm việc hiện tại. Lệnh, trong trường hợp này, sẽ là:

tar -xvf test.tar -C ~/Downloads/ test/test2
Giải nén một thư mục sang một thư mục khác
Giải nén một thư mục sang một thư mục khác

Xóa một file hoặc thư mục khỏi Tarball

Nếu bạn cần xóa một file hoặc thư mục khỏi file TAR hoặc TAR.GZ, hãy sử dụng tùy chọn --delete với lệnh tar:

tar -vf [archive.tar] --delete [file-or-directory]

Tuy nhiên, bạn không thể xóa file hoặc thư mục trực tiếp khỏi tarball nén (TAR.GZ). Điều bạn cần làm trước tiên là giải nén file TAR.GZ, xóa file hoặc thư mục rồi giải nén lại.

Để giải nén file TAR.GZ, hãy sử dụng lệnh sau:

gzip -d [archive.tar.gz]

Giải nén nó sẽ chuyển đổi file thành TAR. Bây giờ, bạn có thể xóa file khỏi kho lưu trữ TAR bằng cách sử dụng:

tar -vf [archive.tar] --delete [file-hoặc-thư mục]

Sau đó, giải nén file TAR bằng gzip:

gzip -f [archive.tar]
Xóa một file khỏi tar
Xóa một file khỏi tar

Việc chỉ trích xuất các file cần thiết từ một kho lưu trữ không chỉ ngăn chặn sự lộn xộn mà còn tiết kiệm thời gian mà lẽ ra phải dành để tìm kiếm giữa một số lượng lớn file.

Đôi khi, việc tạo và giải nén các file TAR dẫn đến những file trùng lặp trong hệ thống. Do đó, bạn nên định kỳ xác định và loại bỏ các bản sao đó để dọn dẹp không gian của mình.

Thứ Sáu, 14/04/2023 09:13
51 👨 255
0 Bình luận
Sắp xếp theo
    ❖ Linux