Có một số cách để nén và giải nén tệp trong Linux. Mặc dù chúng tôi đã thảo luận một số (tại đây và tại đây), nhưng vẫn còn nhiều cách khác mà chúng tôi chưa đề cập đến. Vì vậy, trong hướng dẫn này, chúng tôi sẽ thảo luận về một tiện ích dòng lệnh khác như vậy.
Nó được gọi là xz. Chúng tôi sẽ thảo luận về những điều cơ bản của công cụ dòng lệnh này. Nhưng trước khi đi sâu vào vấn đề đó, cần lưu ý rằng tất cả các ví dụ ở đây đều đã được thử nghiệm trên máy Ubuntu 18.04 LTS.
Và đây là những gì trang hướng dẫn nói về nó:
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách xz hoạt động.
Trên hệ thống của tôi, lệnh đã đề cập ở trên tạo ra tệp sau làm đầu ra.
Vì vậy, bạn có thể thấy lệnh xz đã nén file.txt. Điều đáng nói là thao tác này thay thế tệp gốc (trong trường hợp này là file.txt) bằng phiên bản đã nén.
Ví dụ:
Vì vậy, lần này, bạn sẽ tìm thấy cả file.txt và file.txt.xz trong thư mục làm việc hiện tại.
Ví dụ:
Lệnh này sẽ nén cả hai tệp này cùng một lúc.
Lệnh này sẽ tạo ra file.txt trong thư mục làm việc hiện tại.
Lệnh này tạo ra thông tin sau trong trường hợp của tôi:
Như bạn thấy đấy, bạn có thể sử dụng bất kỳ định dạng nào sau đây: 'auto', 'xz', 'lzma' và 'raw'.
Nó được gọi là xz. Chúng tôi sẽ thảo luận về những điều cơ bản của công cụ dòng lệnh này. Nhưng trước khi đi sâu vào vấn đề đó, cần lưu ý rằng tất cả các ví dụ ở đây đều đã được thử nghiệm trên máy Ubuntu 18.04 LTS.
Lệnh xz của Linux
Như đã đề cập ở phần đầu, lệnh xz trong Linux cho phép bạn nén và giải nén tệp. Sau đây là cú pháp của nó:
Mã:
xz [option...] [file...]
Mã:
xz là một công cụ nén dữ liệu đa năng với cú pháp dòng lệnh tương tự như gzip(1)
và bzip2(1). Định dạng tệp gốc là định dạng .xz, nhưng định dạng .lzma cũ được sử dụng
bởi LZMA Utils và các luồng nén thô không có tiêu đề định dạng chứa cũng được hỗ trợ.
xz nén hoặc giải nén từng tệp theo chế độ hoạt động đã chọn. Nếu không có tệp nào
được cung cấp hoặc tệp là -, xz sẽ đọc từ đầu vào chuẩn và ghi dữ liệu đã xử lý vào
đầu ra chuẩn. xz sẽ từ chối (hiển thị lỗi và bỏ qua tệp) ghi dữ liệu đã nén
vào đầu ra chuẩn nếu đó là thiết bị đầu cuối. Tương tự, xz sẽ từ chối đọc dữ liệu nén
từ đầu vào chuẩn nếu đó là thiết bị đầu cuối.
Câu hỏi 1. Làm thế nào để sử dụng lệnh xz?
Cách sử dụng cơ bản khá đơn giản. Chỉ cần truyền tên tệp (sẽ được nén) làm đối số đầu vào cho xz. Sau đây là một ví dụ:
Mã:
xz file.txt
Mã:
file.txt.xz
Câu hỏi 2. Làm thế nào để xz giữ nguyên tệp gốc?
Như tôi đã đề cập ở phần trước, lệnh xz thay thế tệp gốc bằng phiên bản đã nén. Tuy nhiên, nếu muốn, bạn có thể buộc xz giữ nguyên tệp gốc. Bạn có thể thực hiện thao tác này bằng tùy chọn dòng lệnh -k.Ví dụ:
Mã:
xz -k file.txt
Câu hỏi 3. Làm thế nào để nén nhiều tệp?
Điều này rất đơn giản. Chỉ cần truyền tên làm tham số đầu vào cho xz.Ví dụ:
Mã:
xz file1.txt file2.txt
Câu hỏi 4. Làm thế nào để giải nén các tệp .xz?
Để giải nén các tệp .xz, hãy sử dụng tùy chọn dòng lệnh -d. Ví dụ:
Mã:
xz -d file.txt.xz
Câu hỏi 5. Làm thế nào để xz in thông tin về các tệp đã nén?
Có thể thực hiện việc này bằng tùy chọn dòng lệnh -l. Ví dụ:
Mã:
xz -l file.txt.xz
Mã:
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 96 B 37 B 2.595 CRC64 file.txt.xz
Câu hỏi 6. Làm thế nào để chỉ định một định dạng nén/giải nén khác?
Bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -F. Tuy nhiên, để sử dụng tùy chọn này, bạn cần hiểu những điều sau:
Mã:
-F format, --format=format
Chỉ định định dạng tệp để nén hoặc giải nén:
auto Đây là mặc định. Khi nén, auto tương đương với xz. Khi giải nén, định dạng của tệp đầu vào
sẽ tự động được phát hiện. Lưu ý rằng các luồng thô (được tạo bằng --format=raw) không thể tự động phát hiện.
xz Nén thành định dạng tệp .xz hoặc chỉ chấp nhận các tệp .xz khi giải nén.
lzma, một mình
Nén thành định dạng tệp .lzma cũ hoặc chỉ chấp nhận các tệp .lzma khi giải nén. Chỉ có tên thay thế
được cung cấp để tương thích ngược với LZMA Utils.
raw Nén hoặc giải nén luồng thô (không có tiêu đề). Điều này chỉ dành cho người dùng nâng cao. Để giải mã luồng thô, bạn
cần sử dụng --format=raw và chỉ định rõ ràng chuỗi bộ lọc, thông thường sẽ được lưu trữ trong các tiêu đề
của vùng chứa.