Trang chủ » làm thế nào để » Cách nén và giải nén tập tin bằng lệnh tar trên Linux

    Cách nén và giải nén tập tin 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à các tarball của. . Lệnh tar cũng có thể trích xuất tài liệu 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ích hợp nén. Nó có thể tạo một kho lưu trữ .tar và sau đó nén nó bằng 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 một thư mục toàn bộ 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 trên Linux. Nó cũng sẽ nén mọi thư mục khác trong một thư mục bạn chỉ định - nói cách khác, nó hoạt động theo cách đệ quy.

    tar -czvf tên-of-archive.tar.gz / path / to / thư mục-hoặc-tập tin

    Đây là những gì các công tắc thực sự có nghĩa là:

    • -c: Cgắn lại một kho lưu trữ.
    • -z: Nén kho lưu trữ với 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. Các v luôn là tùy chọn trong các lệnh này, nhưng nó 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à Stuff Stuff 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:

    tar -czvf archive.tar.gz thứ

    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

    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 một danh sách các tập tin hoặc thư mục thay vì một. Ví dụ: giả sử bạn muốn nén thư mục / home / ubfox / Tải xuống, thư mục / usr / local / Stuff và tệp /home/ubfox/Document/notes.txt. Bạn chỉ cần chạy lệnh sau:

    tar -czvf archive.tar.gz / home / ubfox / Tải xuống / usr / local / Stuff /home/ubfox/Document/notes.txt

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

    Không bao gồm các thư mục và tập tin

    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 các tệp và thư mục nhất định. Bạn có thể làm như vậy bằng cách nối thêm --loại trừ chuyển đổi cho mỗi thư mục hoặc tập tin bạn muốn loại trừ.

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

    tar -czvf archive.tar.gz / home / ubfox --exclude = / home / ubfox / Tải xuống --exclude = / home / ub Ubuntu / .cache

    Các --loại trừ chuyển đổi 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. Có rất nhiều điều bạn có thể làm 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 / ubfox --exclude = *. mp4

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

    Mặc dù nén gzip được sử dụng thường xuyên nhất để tạo các 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 các tệp nén bzip2, thường được đặt tên là các tệp .tar.bz2, .tar.bz hoặc .tbz. Để làm như vậy, chỉ cần thay -z cho gzip trong các lệnh ở đây bằng aj cho bzip2.

    Gzip nhanh hơn, nhưng nó thường nén ít hơn một chút, do đó bạn nhận được một 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, do đó bạn 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. Tuy nhiên, nhìn chung, gzip và bzip2 thực tế giống nhau và cả hai sẽ hoạt động tương tự nhau.

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

    tar -cjvf archive.tar.bz2 thứ

    Trích xuất một 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 tệp lưu trữ mà chúng tôi đã sử dụng ở trên, ngoại trừ -x công tắc thay thế -c công tắc điện. Điều này chỉ định bạn muốn exlưu trữ một kho lưu trữ thay vì tạo một.

    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 nối thêm -C chuyển đến 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ế tệp z zv trong các lệnh trên bằng một tệp j j.


    Đây là cách sử dụng đơn giản nhất có thể của lệnh tar. 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 chìa khóa để thoát khỏi trang thông tin khi bạn hoàn thành. 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 mình để tạo hoặc trích xuất các tệp .tar. Trên Windows, bạn có thể trích xuất và tạo tài liệu lưu trữ .tar với tiện ích 7-Zip miễn phí.