Câu trả lời:
Đọc man tar
. Nó cung cấp:
-a, --auto-compress
use archive suffix to determine the compression program
-j, --bzip2
--lzip
--lzma
--lzop
-z, --gzip, --gunzip --ungzip
-Z, --compress, --uncompress
Hoặc, nếu không có cái nào phù hợp với bạn và bạn có chương trình nén để đọc stdin
, bạn có thể:
tar cf- $HOME | my_compression_program >/tmp/compressed.output
Lưu ý rằng tôi đang viết đầu ra ở đâu đó ngoài $HOME
(sao lưu vào một thư mục mà bạn đang sao lưu dẫn đến tăng trưởng tệp không bị giới hạn).
Hoặc, bạn có thể đọc man 7z
- có vẻ như bạn có thể làm
dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir
Nó không phải là một ý tưởng tốt khi nén trực tiếp với 7z trên các hệ thống unix / linux: 7z không bảo vệ quyền và thông tin người dùng / nhóm . Vì vậy: tar đầu tiên, và sau đó nén.
Như đã báo cáo trên trang wiki 7zip tại http://en.wikipedia.org/wiki/7z#Limemony :
Hạn chế
Định dạng 7z không lưu trữ quyền của hệ thống tệp (như quyền của chủ sở hữu / nhóm UNIX hoặc ACL NTFS) và do đó có thể không phù hợp cho mục đích lưu trữ / lưu trữ. Một cách giải quyết trên các hệ thống giống như UNIX cho việc này là chuyển đổi dữ liệu thành luồng bit tar trước khi nén với 7z.
Tôi muốn đề nghị bạn sử dụng:
tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z
để tăng tốc độ đáng kể.
Nó có lợi thế là sử dụng lzma2 ( -m0=lzma2
) (sử dụng các lõi có sẵn tối đa trên hệ thống của bạn và cài đặt trước "Nén nhanh" ( -mx=3
về cơ bản là nhanh và đủ tốt. Lưu ý rằng LZMA2 không chỉ sử dụng tất cả các lõi khi nén, mà còn trên giảm bớt sức ép.
Bạn nên sử dụng tar -Jchf <Filename>.tar.xz <Files to compress>
Sử -J
dụng thuật toán nén XZ, giống như 7zip
-c
tạo một tệp mới
-h
bảo tồn các liên kết sim
-f
đặt tên tệp
man 7z
.