Cách nén và giải nén tệp bằng lệnh tar trên Linux

Lệnh tar trên Linux thường được sử dụng để tạo các tệp lưu trữ .tar.gz hoặc .tgz, còn được gọi là “tarball”. Lệnh này có một số lượng lớn các tùy chọn, nhưng bạn chỉ cần nhớ một vài ký tự để tạo nhanh các kho lưu trữ bằng tar. Lệnh tar cũng có thể giải nén các kho lưu trữ kết quả.

Lệnh GNU tar đi kèm với các bản phân phối Linux có tính năng nén tích hợp. Nó có thể tạo một kho lưu trữ .tar và sau đó nén nó bằng cách nén gzip hoặc bzip2 trong một lệnh duy nhất. Đó là lý do tại sao tệp kết quả là tệp .tar.gz hoặc tệp .tar.bz2.

Nén toàn bộ thư mục hoặc một tệp duy nhất

Sử dụng lệnh sau để nén toàn bộ thư mục hoặc một tệp duy nhất trên Linux. Nó cũng sẽ nén mọi thư mục khác bên trong một thư mục mà bạn chỉ định – nói cách khác, nó hoạt động một cách đệ quy.

tar -czvf name-of-archive.tar.gz / path / to / directory-or-file

Dưới đây là ý nghĩa thực sự của những công tắc đó:

  • -c: Create một kho lưu trữ.
  • -z: Nén kho lưu trữ bằng gzip.
  • -v: Hiển thị tiến trình trong thiết bị đầu cuối trong khi tạo kho lưu trữ, còn được gọi là “vchế độ erbose ”. V luôn là tùy chọn trong các lệnh này, nhưng nó rất hữu ích.
  • -f: Cho phép bạn chỉ định filename của kho lưu trữ.

Giả sử bạn có một thư mục có tên là “nội dung” trong thư mục hiện tại và bạn muốn lưu nó vào một tệp có tên archive.tar.gz. Bạn sẽ chạy lệnh sau:

nội dung tar -czvf archive.tar.gz

Hoặc giả sử có một thư mục tại / usr / local / something trên hệ thống hiện tại và bạn muốn nén nó vào một tệp có tên archive.tar.gz. Bạn sẽ chạy lệnh sau:

tar -czvf archive.tar.gz / usr / local / something

Nén nhiều thư mục hoặc tệp cùng một lúc

LIÊN QUAN:Cách quản lý tệp từ Linux Terminal: 11 lệnh bạn cần biết

Mặc dù tar thường được sử dụng để nén một thư mục, bạn cũng có thể sử dụng nó để nén nhiều thư mục, nhiều tệp riêng lẻ hoặc cả hai. Chỉ cần cung cấp danh sách các tệp hoặc thư mục thay vì một danh sách. Ví dụ: giả sử bạn muốn nén thư mục / home / ubuntu / Downloads, thư mục / usr / local / things và tệp /home/ubuntu/Documents/notes.txt. Bạn chỉ cần chạy lệnh sau:

tar -czvf archive.tar.gz / home / ubuntu / Downloads / usr / local / things /home/ubuntu/Documents/notes.txt

Chỉ cần liệt kê bao nhiêu thư mục hoặc tệp bạn muốn sao lưu.

Loại trừ Thư mục và Tệp

Trong một số trường hợp, bạn có thể muốn nén toàn bộ thư mục, nhưng không bao gồm một số tệp và thư mục nhất định. Bạn có thể làm như vậy bằng cách thêm một --loại trừ chuyển đổi cho từng thư mục hoặc tệp bạn muốn loại trừ.

Ví dụ: giả sử bạn muốn nén / home / ubuntu, nhưng bạn không muốn nén các thư mục / home / ubuntu / Downloads và /home/ubuntu/.cache. Đây là cách bạn sẽ làm điều đó:

tar -czvf archive.tar.gz / home / ubuntu --exclude = / home / ubuntu / Downloads --exclude = / home / ubuntu / .cache

Các --loại trừ công tắc rất mạnh mẽ. Nó không lấy tên của các thư mục và tệp – nó thực sự chấp nhận các mẫu. Bạn có thể làm được nhiều việc hơn với nó. Ví dụ: bạn có thể lưu trữ toàn bộ thư mục và loại trừ tất cả các tệp .mp4 bằng lệnh sau:

tar -czvf archive.tar.gz / home / ubuntu --exclude = *. mp4

Sử dụng nén bzip2 để thay thế

Mặc dù nén gzip thường được sử dụng để tạo tệp .tar.gz hoặc .tgz, tar cũng hỗ trợ nén bzip2. Điều này cho phép bạn tạo tệp nén bzip2, thường được đặt tên là tệp .tar.bz2, .tar.bz hoặc .tbz. Để làm như vậy, chỉ cần thay thế -z cho gzip trong các lệnh ở đây bằng a -j cho bzip2.

Gzip nhanh hơn, nhưng nó thường nén ít hơn một chút, vì vậy bạn sẽ nhận được tệp lớn hơn một chút. Bzip2 chậm hơn, nhưng nó nén nhiều hơn một chút, vì vậy bạn sẽ nhận được một tệp nhỏ hơn một chút. Gzip cũng phổ biến hơn, với một số hệ thống Linux bị loại bỏ bao gồm hỗ trợ gzip theo mặc định, nhưng không hỗ trợ bzip2. Mặc dù vậy, nói chung, gzip và bzip2 thực tế giống nhau và cả hai sẽ hoạt động tương tự.

Ví dụ: thay vì ví dụ đầu tiên chúng tôi cung cấp để nén thư mục nội dung, bạn sẽ chạy lệnh sau:

nội dung tar -cjvf archive.tar.bz2

Trích xuất kho lưu trữ

Khi bạn có một kho lưu trữ, bạn có thể giải nén nó bằng lệnh tar. Lệnh sau sẽ trích xuất nội dung của archive.tar.gz vào thư mục hiện tại.

tar -xzvf archive.tar.gz

Nó giống như lệnh tạo kho lưu trữ mà chúng tôi đã sử dụng ở trên, ngoại trừ lệnh -x công tắc thay thế -c công tắc điện. Điều này xác định bạn muốn extạo một kho lưu trữ thay vì tạo một kho lưu trữ.

Bạn có thể muốn trích xuất nội dung của kho lưu trữ vào một thư mục cụ thể. Bạn có thể làm như vậy bằng cách thêm vào -C chuyển sang cuối lệnh. Ví dụ: lệnh sau sẽ trích xuất nội dung của tệp archive.tar.gz vào thư mục / tmp.

tar -xzvf archive.tar.gz -C / tmp

Nếu tệp là tệp nén bzip2, hãy thay thế “z” trong các lệnh trên bằng “j”.

Đây là cách sử dụng lệnh tar đơn giản nhất có thể. Lệnh bao gồm một số lượng lớn các tùy chọn bổ sung, vì vậy chúng tôi không thể liệt kê tất cả chúng ở đây. Để biết thêm thông tin. chạy thông tin tar lệnh tại trình bao để xem trang thông tin chi tiết của lệnh tar. Nhấn nút q để thoát khỏi trang thông tin khi bạn đã hoàn tất. Bạn cũng có thể đọc hướng dẫn sử dụng tar trực tuyến.

Nếu bạn đang sử dụng máy tính để bàn Linux đồ họa, bạn cũng có thể sử dụng tiện ích nén tệp hoặc trình quản lý tệp đi kèm với máy tính để bàn của bạn để tạo hoặc trích xuất tệp .tar. Trên Windows, bạn có thể giải nén và tạo các kho lưu trữ .tar bằng tiện ích 7-Zip miễn phí.


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