Câu trả lời:
Mặc dù như chi tiết của Zacharee1 và bởi heemayl thường là những gì bạn sẽ muốn làm, một cách khác là chuyển dữ liệu được tarred vào lệnh:tar cJf archive files...
xz
tar c files... | xz > archive.tar.xz
Vì Ubuntu tar
hỗ trợ J
tùy chọn, cách thay thế này đặc biệt hữu ích khi bạn muốn chuyển các tùy chọn sang xz
.
Trong ví dụ này, tôi tar và xzip một số tệp TIFF với mức độ nén ( -9
to xz
) và đầu ra dài ( v
to tar
, -v
to xz
):
ek@Io:~/Pictures$ tar vc *.tif{,f} | xz -9v > pics.tar.xz
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
100 % 207.3 KiB / 290.0 KiB = 0.715
Tất nhiên, điều này cũng có thể được thực hiện theo hai bước riêng biệt rõ ràng:
ek@Io:~/Pictures$ tar vcf pics.tar *.tif{,f}
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
ek@Io:~/Pictures$ xz -9v pics.tar
pics.tar (1/1)
100 % 207.3 KiB / 290.0 KiB = 0.715
Hai cách đó không thực sự tương đương trong cách chúng hoạt động, mặc dù các .tar.xz
tệp chúng tạo ra cuối cùng phải giống nhau (và, khi tôi kiểm tra nó).
tar
được đường ống ( |
) đến đầu vào của xz
. xz
nhận dữ liệu từ tar
gần như ngay lập tức và không có tệp tar không nén trung gian nào được tạo. Điều này có nghĩa là cách đầu tiên về cơ bản tương đương vớitar cJf archive files...
, ngoại trừ các đối số bổ sung được truyền vào xz
.xz
trong lệnh thứ hai. ( xz
tự động xóa tệp gốc khi hoàn tất, trừ khi được gọi bằng -k
/ --keep
.)Để đọc thêm, xem bài này Rafael van Horn và tar
và xz
trang man.
tar -J
là chỉ định biến môi trường XZ_OPT
, thực hiện lệnh gọi giống như:XZ_OPT="-9v" tar -Jcf out.tar.xz [files]
Sử dụng tar
với -J
tùy chọn:
tar -cvJf images.tar.xz /directory/containing/images/*
tar
được sử dụng để kết hợp nhiều tệp thành một (Lưu trữ) và sau đó chúng ta cần nén tệp lưu trữ bằng thuật toán nén XZ.
Từ man tar
:
-c, --create
create a new archive
-v, --verbose
verbosely list files processed
-J, --xz
-f, --file ARCHIVE
use archive file or device ARCHIVE
Cũng lưu ý rằng images.tar.xz
sẽ được tạo trong thư mục hiện tại, nếu bạn muốn lưu nó ở nơi khác sử dụng /full/path/to/images.tar.xz
.
xz
là chậm nhất trong số xz
, gzip
, bzip2
do tỉ lệ nén cao hơn của nó so với sự chậm chạp others..the là giá trị để thỏa thuận với nếu bạn muốn nén nhiều ..
Sử dụng lệnh này : tar cJf <archive.tar.xz> <files>
. Đường dẫn tệp riêng biệt với một khoảng trắng.
-cfJ
-
ở phía trước..từ man tar
: A function letter need not be prefixed with ``-''
.. tar cJf
hoàn toàn ổn.
tar cJf
, điều đó sẽ cho OP một cách khác để làm điều này vì câu trả lời của tôi đã được đề cập tar --cvJf
lúc đầu ..