EnglishFrenchSpanish

เรียกใช้เซิร์ฟเวอร์ | Ubuntu > | Fedora > |


ไอคอน Fav ของ OnWorks

xzcat - ออนไลน์ในคลาวด์

เรียกใช้ xzcat ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง xzcat ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


xz, unxz, xzcat, lzma, unlzma, lzcat - บีบอัดหรือขยายไฟล์ .xz และ .lzma

เรื่องย่อ


xz [ตัวเลือก]... [ไฟล์] ...

unxz เทียบเท่ากับ xz --คลายการบีบอัด.
xzcat เทียบเท่ากับ xz --คลายการบีบอัด --stdout.
lzma เทียบเท่ากับ xz --format=lzma.
unlzma เทียบเท่ากับ xz --format=lzma --คลายการบีบอัด.
lzcat เทียบเท่ากับ xz --format=lzma --คลายการบีบอัด --stdout.

เมื่อเขียนสคริปต์ที่ต้องการคลายการบีบอัดไฟล์ ขอแนะนำให้ใช้เครื่องหมาย . เสมอ
ชื่อ xz ด้วยข้อโต้แย้งที่เหมาะสม (xz -d or xz -กระแสตรง) แทนชื่อ unxz และ xzcat.

DESCRIPTION


xz เป็นเครื่องมือบีบอัดข้อมูลเอนกประสงค์ที่มีไวยากรณ์บรรทัดคำสั่งคล้ายกับ gzip(1)
และ bzip2(1). รูปแบบไฟล์ดั้งเดิมคือ .xz รูปแบบ แต่มรดก .lzma รูปแบบที่ใช้
โดย LZMA Utils และสตรีมที่บีบอัดแบบดิบโดยไม่มีส่วนหัวของรูปแบบคอนเทนเนอร์ด้วย
ได้รับการสนับสนุน.

xz บีบอัดหรือคลายแต่ละอัน ไฟล์ ตามโหมดการทำงานที่เลือก ถ้าไม่
ไฟล์ จะได้รับหรือ ไฟล์ is -, xz อ่านจากอินพุตมาตรฐานและเขียนข้อมูลที่ประมวลผล
สู่เอาต์พุตมาตรฐาน xz จะปฏิเสธ (แสดงข้อผิดพลาดและข้าม ไฟล์) เขียน
บีบอัดข้อมูลเป็นเอาต์พุตมาตรฐานหากเป็นเทอร์มินัล ในทำนองเดียวกัน xz จะไม่ยอมอ่าน
บีบอัดข้อมูลจากอินพุตมาตรฐานหากเป็นเทอร์มินัล

เว้นแต่ --stdout ระบุไว้ ไฟล์ นอกเหนือจาก - ถูกเขียนลงในไฟล์ใหม่ที่ชื่อว่า
ได้มาจากแหล่งกำเนิด ไฟล์ ชื่อ:

· เมื่อบีบอัด คำต่อท้ายของรูปแบบไฟล์เป้าหมาย (.xz or .lzma) ต่อท้าย
ชื่อไฟล์ต้นทางเพื่อรับชื่อไฟล์เป้าหมาย

· เมื่อคลายการบีบอัด .xz or .lzma คำต่อท้ายจะถูกลบออกจากชื่อไฟล์เพื่อรับ
ชื่อไฟล์เป้าหมาย xz ยังรับรู้คำต่อท้าย .txz และ .tlzและแทนที่ด้วย
.tar วิภัตติ

หากไฟล์เป้าหมายมีอยู่แล้ว ข้อผิดพลาดจะปรากฏขึ้นและ ไฟล์ ถูกข้ามไป

เว้นแต่จะเขียนไปยังเอาต์พุตมาตรฐาน xz จะแสดงคำเตือนและข้าม ไฟล์ ถ้ามีของ
ต่อไปนี้ใช้:

· เนื้อไม่มีมัน ไม่ใช่ไฟล์ปกติ ลิงก์สัญลักษณ์จะไม่ถูกติดตาม ดังนั้นจึงไม่ใช่
ถือว่าเป็นไฟล์ปกติ

· เนื้อไม่มีมัน มีฮาร์ดลิงก์มากกว่าหนึ่งลิงก์

· เนื้อไม่มีมัน มี setuid, setgid หรือชุดบิตเหนียว

· โหมดการทำงานถูกตั้งค่าให้บีบอัดและ ไฟล์ มีคำต่อท้ายของเป้าหมายอยู่แล้ว
รูปแบบไฟล์ (.xz or .txz เมื่อบีบอัดถึง .xz รูปแบบและ .lzma or .tlz เมื่อ
บีบอัดเป็น .lzma รูปแบบ)

· โหมดการทำงานถูกตั้งค่าให้คลายการบีบอัดและปุ่ม ไฟล์ ไม่มีคำต่อท้ายใด ๆ ของ
รูปแบบไฟล์ที่รองรับ (.xz, .txz, .lzma,หรือ .tlz).

หลังจากบีบอัดหรือคลายการบีบอัดเรียบร้อยแล้ว ไฟล์, xz คัดลอกเจ้าของกลุ่ม
สิทธิ์ เวลาเข้าถึง และเวลาแก้ไขจากแหล่งที่มา ไฟล์ ไปยังไฟล์เป้าหมาย
หากการคัดลอกกลุ่มล้มเหลว สิทธิ์จะถูกแก้ไขเพื่อไม่ให้ไฟล์เป้าหมาย
เข้าถึงได้โดยผู้ใช้ที่ไม่ได้รับอนุญาตให้เข้าถึงแหล่งที่มา ไฟล์. xz
ไม่รองรับการคัดลอกข้อมูลเมตาอื่นๆ เช่น รายการควบคุมการเข้าถึงหรือแอตทริบิวต์เพิ่มเติม
ยัง

เมื่อปิดไฟล์เป้าหมายสำเร็จแล้ว source ไฟล์ จะถูกลบออกเว้นแต่
--เก็บไว้ ถูกระบุ ที่มา ไฟล์ จะไม่ถูกลบออกหากเอาต์พุตถูกเขียนถึง
เอาต์พุตมาตรฐาน

การส่ง ซิกอินโฟ or SIGUSR1 ไป xz กระบวนการทำให้พิมพ์ข้อมูลความคืบหน้าไปที่
มาตรฐานบกพร่อง. มีการใช้งานที่จำกัดเท่านั้น เนื่องจากเมื่อข้อผิดพลาดมาตรฐานคือเทอร์มินัล การใช้
--verbose จะแสดงตัวบ่งชี้ความคืบหน้าในการอัปเดตโดยอัตโนมัติ

หน่วยความจำ การใช้
การใช้หน่วยความจำของ xz แตกต่างกันไปตั้งแต่ไม่กี่ร้อยกิโลไบต์ไปจนถึงหลายกิกะไบต์ขึ้นอยู่กับ
ในการตั้งค่าการบีบอัด การตั้งค่าที่ใช้เมื่อบีบอัดไฟล์เป็นตัวกำหนด
ข้อกำหนดหน่วยความจำของตัวขยายขนาด โดยทั่วไป ตัวคลายการบีบอัดต้องการ 5 % ถึง 20 % ของ
จำนวนหน่วยความจำที่คอมเพรสเซอร์ต้องการเมื่อสร้างไฟล์ ตัวอย่างเช่น,
แตกไฟล์ที่สร้างด้วย xz -9 ปัจจุบันต้องการหน่วยความจำ 65 MiB ยังคงเป็น
เป็นไปได้ .xz ไฟล์ที่ต้องใช้หน่วยความจำหลายกิกะไบต์ในการแตกไฟล์

โดยเฉพาะผู้ใช้ระบบเก่าอาจพบว่ามีการใช้หน่วยความจำขนาดใหญ่มาก
น่ารำคาญ. เพื่อป้องกันเรื่องเซอร์ไพรส์ที่ไม่สบายใจ xz มีตัวจำกัดการใช้หน่วยความจำในตัว
ซึ่งถูกปิดใช้งานโดยค่าเริ่มต้น ในขณะที่ระบบปฏิบัติการบางระบบมีวิธีจำกัดการ
การใช้หน่วยความจำของกระบวนการ การพึ่งพากระบวนการนั้นถือว่าไม่ยืดหยุ่นเพียงพอ (เช่น การใช้
ulimit(1) การจำกัดหน่วยความจำเสมือนมีแนวโน้มที่จะพิการ mmap(พ.ศ. 2)).

ตัวจำกัดการใช้หน่วยความจำสามารถเปิดใช้งานได้ด้วยตัวเลือกบรรทัดคำสั่ง --memlimit=จำกัด.
บ่อยครั้งจะสะดวกกว่าที่จะเปิดใช้งานตัวจำกัดโดยค่าเริ่มต้นโดยการตั้งค่าสภาพแวดล้อม
ตัวแปร XZ_DEFAULTS, เช่น XZ_DEFAULTS=--memlimit=150MiB. สามารถตั้งค่า
แยกกันสำหรับการบีบอัดและคลายการบีบอัดโดยใช้ --memlimit-บีบอัด=จำกัด และ
--memlimit-คลายการบีบอัด=จำกัด. ใช้สองตัวเลือกนี้ภายนอก XZ_DEFAULTS ไม่ค่อยมีประโยชน์
เพราะวิ่งครั้งเดียวของ xz ไม่สามารถทำทั้งการบีบอัดและคลายการบีบอัดและ
--memlimit=จำกัด (หรือ -M จำกัด) สั้นกว่าในการพิมพ์บนบรรทัดคำสั่ง

หากเกินขีดจำกัดการใช้งานหน่วยความจำที่ระบุเมื่อทำการคลายการบีบอัด xz จะแสดง
เกิดข้อผิดพลาดและขยายขนาดไฟล์จะล้มเหลว หากเกินขีด จำกัด เมื่อบีบอัด xz
จะพยายามลดขนาดการตั้งค่าลงเพื่อไม่ให้เกินขีดจำกัดอีกต่อไป (ยกเว้นเมื่อ
การใช้ --รูปแบบ=ดิบ or --no-adjust). วิธีนี้การดำเนินการจะไม่ล้มเหลวเว้นแต่ว่าขีดจำกัดคือ
ขนาดเล็กมาก. การปรับขนาดการตั้งค่าทำได้ในขั้นตอนที่ไม่ตรงกับการบีบอัด
ระดับที่ตั้งไว้ล่วงหน้าเช่นถ้าขีด จำกัด น้อยกว่าจำนวนที่จำเป็นสำหรับ .เพียงเล็กน้อย xz -9,
การตั้งค่าจะถูกลดขนาดลงเพียงเล็กน้อยเท่านั้น ไม่ใช่จนถึง xz -8.

เรียงต่อกัน และ การขยายความ กับ .xz ไฟล์
เชื่อมได้ .xz ไฟล์ตามที่เป็นอยู่ xz จะแตกไฟล์เช่นถ้าพวกเขา
เป็นโสด .xz ไฟล์

สามารถแทรกช่องว่างภายในระหว่างส่วนที่ต่อกันหรือหลังส่วนสุดท้ายได้
ช่องว่างภายในต้องประกอบด้วย null ไบต์ และขนาดของช่องว่างภายในจะต้องเป็นทวีคูณของ
สี่ไบต์ สิ่งนี้มีประโยชน์เช่นถ้า .xz ไฟล์ถูกเก็บไว้ในสื่อที่วัดได้
ขนาดไฟล์ในบล็อก 512 ไบต์

ไม่อนุญาตให้ต่อและช่องว่างภายในกับ .lzma ไฟล์หรือสตรีมดิบ

OPTIONS


จำนวนเต็ม คำต่อท้าย และ พิเศษ ค่า
ในสถานที่ส่วนใหญ่ที่คาดว่าจะมีอาร์กิวเมนต์จำนวนเต็ม คำต่อท้ายที่เป็นทางเลือกจะได้รับการสนับสนุน
ระบุจำนวนเต็มขนาดใหญ่ได้อย่างง่ายดาย ต้องไม่มีช่องว่างระหว่างจำนวนเต็มและ
วิภัตติ

โอเค คูณจำนวนเต็มด้วย 1,024 (2^10) Ki, k, kB, Kและ KB ได้รับการยอมรับในฐานะ
คำพ้องความหมายสำหรับ โอเค.

เอ็บ คูณจำนวนเต็มด้วย 1,048,576 (2^20) Mi, m, Mและ MB ได้รับการยอมรับในฐานะ
คำพ้องความหมายสำหรับ เอ็บ.

GiB คูณจำนวนเต็มด้วย 1,073,741,824 (2^30) Gi, g, Gและ GB ได้รับการยอมรับในฐานะ
คำพ้องความหมายสำหรับ GiB.

ความคุ้มค่าพิเศษ แม็กซ์ สามารถใช้เพื่อระบุค่าจำนวนเต็มสูงสุดที่รองรับโดย
ตัวเลือก

การดำเนินการ โหมด
หากมีตัวเลือกโหมดการทำงานหลายแบบ ตัวเลือกสุดท้ายจะมีผล

-z, --บีบอัด
บีบอัด นี่คือโหมดการทำงานเริ่มต้นเมื่อไม่มีตัวเลือกโหมดการทำงานคือ
ระบุและไม่มีโหมดการทำงานอื่นที่บอกเป็นนัยจากชื่อคำสั่ง (for
ตัวอย่าง, unxz หมายถึง --คลายการบีบอัด).

-d, --คลายการบีบอัด, --uncompress
คลายการบีบอัด

-t, --ทดสอบ
ทดสอบความสมบูรณ์ของการบีบอัด ไฟล์. ตัวเลือกนี้เทียบเท่ากับ --คลายการบีบอัด
--stdout เว้นแต่ข้อมูลที่คลายการบีบอัดแล้วจะถูกละทิ้งแทนที่จะเขียนถึง
เอาต์พุตมาตรฐาน ไม่มีการสร้างหรือลบไฟล์

-l, --รายการ
พิมพ์ข้อมูลเกี่ยวกับการบีบอัด ไฟล์. ไม่มีการผลิตเอาต์พุตที่ไม่บีบอัดและ
ไม่มีการสร้างหรือลบไฟล์ ในโหมดรายการ โปรแกรมไม่สามารถอ่าน
ข้อมูลที่บีบอัดจากอินพุตมาตรฐานหรือจากแหล่งอื่นๆ ที่ไม่สามารถค้นหาได้

รายการเริ่มต้นแสดงข้อมูลพื้นฐานเกี่ยวกับ ไฟล์, หนึ่งไฟล์ต่อบรรทัด ที่จะได้รับ
ข้อมูลรายละเอียดเพิ่มเติม ใช้ the . ด้วย --verbose ตัวเลือก. ให้มากยิ่งขึ้น
ข้อมูลการใช้งาน --verbose สองครั้ง แต่โปรดทราบว่านี่อาจจะช้าเพราะการรับ
ข้อมูลเพิ่มเติมทั้งหมดต้องใช้ความพยายามมากมาย ความกว้างของเอาต์พุต verbose เกิน
80 อักขระ ดังนั้นส่งเอาต์พุตไปยังเช่น น้อยลง -S อาจจะสะดวกถ้า
เทอร์มินัลไม่กว้างพอ

ผลลัพธ์ที่แน่นอนอาจแตกต่างกันระหว่าง xz เวอร์ชันและสถานที่ต่างๆ สำหรับเครื่อง-
เอาต์พุตที่อ่านได้, --robot --รายการ ควรใช้

การดำเนินการ การปรับเปลี่ยน
-k, --เก็บไว้
อย่าลบไฟล์อินพุต

-f, --บังคับ
ตัวเลือกนี้มีเอฟเฟกต์หลายอย่าง:

· หากไฟล์เป้าหมายมีอยู่แล้ว ให้ลบออกก่อนบีบอัดหรือ
คลายการบีบอัด

· บีบอัดหรือขยายขนาดแม้ว่าอินพุตจะเป็นลิงก์สัญลักษณ์ไปยังไฟล์ปกติ
มีฮาร์ดลิงก์มากกว่าหนึ่งรายการ หรือมี setuid, setgid หรือชุดบิตเหนียว NS
setuid, setgid และ sticky bits จะไม่ถูกคัดลอกไปยังไฟล์เป้าหมาย

· เมื่อใช้กับ --คลายการบีบอัด --stdout และ xz ไม่รู้จักประเภทของ
ไฟล์ต้นฉบับ ให้คัดลอกไฟล์ต้นฉบับไปยังเอาต์พุตมาตรฐาน สิ่งนี้ทำให้ xzcat
--บังคับ ใช้เช่น แมว(1) สำหรับไฟล์ที่ยังไม่ได้บีบอัดด้วย xz.
สังเกตว่าในอนาคต xz อาจรองรับรูปแบบไฟล์บีบอัดใหม่ ซึ่งอาจ
ทำ xz คลายการบีบอัดไฟล์ประเภทอื่น ๆ แทนที่จะคัดลอกตามมาตรฐาน
เอาท์พุต --รูปแบบ=รูป สามารถใช้เพื่อ จำกัด xz ให้คลายตัวเพียงตัวเดียว
รูปแบบไฟล์.

-c, --stdout, --to-stdout
เขียนข้อมูลที่บีบอัดหรือคลายการบีบอัดไปยังเอาต์พุตมาตรฐานแทนไฟล์
โดยนัยนี้ --เก็บไว้.

--สตรีมเดียว
คลายการบีบอัดก่อน .xz สตรีมและละเว้นอินพุตที่เหลืออยู่อย่างเงียบ ๆ
ข้อมูลตามกระแส โดยปกติขยะที่ตามมาเช่นนี้จะทำให้ xz แสดง
ความผิดพลาด

xz ไม่เคยขยายมากกว่าหนึ่งสตรีมจาก .lzma ไฟล์หรือสตรีมดิบแต่
ตัวเลือกนี้ยังคงทำให้ xz ละเว้นข้อมูลต่อท้ายที่เป็นไปได้หลังจาก .lzma ไฟล์
หรือสตรีมดิบ

ตัวเลือกนี้ไม่มีผลหากโหมดการทำงานไม่ใช่ --คลายการบีบอัด or --ทดสอบ.

--ไม่กระจัดกระจาย
ปิดใช้งานการสร้างไฟล์กระจัดกระจาย โดยค่าเริ่มต้น หากคลายการบีบอัดเป็นค่าปกติ
ไฟล์, xz พยายามทำให้ไฟล์กระจัดกระจายหากข้อมูลที่คลายการบีบอัดมีความยาว
ลำดับของเลขศูนย์ไบนารี นอกจากนี้ยังใช้งานได้เมื่อเขียนไปยังเอาต์พุตมาตรฐานนาน
เนื่องจากเอาต์พุตมาตรฐานเชื่อมต่อกับไฟล์ปกติและเงื่อนไขเพิ่มเติมบางอย่าง
ได้พบกันเพื่อให้ปลอดภัย การสร้างไฟล์แบบกระจายอาจช่วยประหยัดพื้นที่ดิสก์และเพิ่มความเร็ว
คลายการบีบอัดโดยการลดจำนวนดิสก์ I/O

-S .suf, --suffix=.suf
เมื่อบีบอัดให้ใช้ .suf เป็นคำต่อท้ายสำหรับไฟล์เป้าหมายแทน .xz or
.lzma. หากไม่เขียนไปยังเอาต์พุตมาตรฐานและไฟล์ต้นฉบับมี .อยู่แล้ว
วิภัตติ .sufคำเตือนจะปรากฏขึ้นและไฟล์จะถูกข้ามไป

เมื่อคลายการบีบอัด ให้รู้จักไฟล์ที่มีส่วนต่อท้าย .suf นอกเหนือจากไฟล์ที่มี
.xz, .txz, .lzma,หรือ .tlz คำต่อท้าย หากไฟล์ต้นฉบับมีส่วนต่อท้าย .sufที่
คำต่อท้ายจะถูกลบออกเพื่อรับชื่อไฟล์เป้าหมาย

เมื่อบีบอัดหรือคลายการบีบอัดข้อมูลดิบ (--รูปแบบ=ดิบ) คำต่อท้าย must
ระบุเสมอ เว้นแต่จะเขียนไปยังเอาต์พุตมาตรฐาน เนื่องจากไม่มีค่าเริ่มต้น
คำต่อท้ายสำหรับสตรีมดิบ

--files[=ไฟล์]
อ่านชื่อไฟล์ที่จะประมวลผลจาก ไฟล์; ถ้า ไฟล์ ละเว้น ชื่อไฟล์จะถูกอ่าน
จากอินพุตมาตรฐาน ชื่อไฟล์ต้องสิ้นสุดด้วยอักขระขึ้นบรรทัดใหม่ NS
เส้นประ (-) ถูกใช้เป็นชื่อไฟล์ปกติ ไม่ได้หมายถึงอินพุตมาตรฐาน ถ้า
ชื่อไฟล์จะได้รับเป็นอาร์กิวเมนต์บรรทัดคำสั่งด้วย ซึ่งจะถูกประมวลผลก่อน
ชื่อไฟล์ที่อ่านจาก ไฟล์.

--files0[=ไฟล์]
มันเหมือนกับ --files[=ไฟล์] ยกเว้นว่าแต่ละชื่อไฟล์จะต้องถูกยกเลิก
ด้วยอักขระว่าง

ขั้นพื้นฐาน ไฟล์ รูป และ การอัด ตัวเลือก
-F รูป, --รูปแบบ=รูป
ระบุไฟล์ รูป เพื่อบีบอัดหรือขยาย:

รถยนต์ นี่คือค่าเริ่มต้น เมื่อบีบอัด รถยนต์ เทียบเท่ากับ xz. เมื่อ
คลายการบีบอัด รูปแบบของไฟล์อินพุตจะถูกตรวจจับโดยอัตโนมัติ บันทึก
ที่ลำธารดิบ (สร้างด้วย --รูปแบบ=ดิบ) ไม่สามารถตรวจจับอัตโนมัติได้

xz บีบอัดไปที่ .xz รูปแบบไฟล์หรือยอมรับเท่านั้น .xz ไฟล์เมื่อ
คลายการบีบอัด

lzma, คนเดียว
บีบอัดให้เป็นมรดก .lzma รูปแบบไฟล์หรือยอมรับเท่านั้น .lzma ไฟล์เมื่อ
คลายการบีบอัด ชื่ออื่น คนเดียว มีไว้สำหรับถอยหลัง
เข้ากันได้กับ LZMA Utils

ดิบ บีบอัดหรือคลายการบีบอัดสตรีมดิบ (ไม่มีส่วนหัว) นี้มีไว้สำหรับ
ผู้ใช้ขั้นสูงเท่านั้น ในการถอดรหัสสตรีมดิบคุณต้องใช้ --รูปแบบ=ดิบ และ
ระบุห่วงโซ่ตัวกรองอย่างชัดเจนซึ่งปกติจะถูกเก็บไว้
ในส่วนหัวคอนเทนเนอร์

-C ตรวจสอบ, --check=ตรวจสอบ
ระบุประเภทของการตรวจสอบความสมบูรณ์ เช็คคำนวณจาก
ข้อมูลที่ไม่บีบอัดและเก็บไว้ใน .xz ไฟล์. ตัวเลือกนี้จะมีผลก็ต่อเมื่อ
บีบอัดเป็น .xz รูปแบบ; NS .lzma รูปแบบไม่รองรับการตรวจสอบความสมบูรณ์
การตรวจสอบความสมบูรณ์ (ถ้ามี) จะได้รับการยืนยันเมื่อ .xz ไฟล์ถูกคลายการบีบอัด

ที่สนับสนุน ตรวจสอบ ประเภท:

ไม่มี อย่าคำนวณการตรวจสอบความสมบูรณ์เลย นี้มักจะเป็นความคิดที่ไม่ดี
สิ่งนี้มีประโยชน์เมื่อตรวจสอบความถูกต้องของข้อมูลด้วยวิธีอื่น
อย่างไรก็ตาม

crc32 คำนวณ CRC32 โดยใช้พหุนามจาก IEEE-802.3 (Ethernet)

crc64 คำนวณ CRC64 โดยใช้พหุนามจาก ECMA-182 นี่คือค่าเริ่มต้น
เนื่องจากดีกว่า CRC32 เล็กน้อยในการตรวจจับไฟล์ที่เสียหายและ
ความแตกต่างของความเร็วนั้นเล็กน้อย

sha256 คำนวณ SHA-256 ซึ่งค่อนข้างช้ากว่า CRC32 และ CRC64

ความซื่อสัตย์ของ .xz ส่วนหัวจะถูกตรวจสอบด้วย CRC32 เสมอ ไม่สามารถ
เปลี่ยนหรือปิดการใช้งาน

-0 ... -9
เลือกระดับการบีบอัดที่ตั้งไว้ล่วงหน้า ค่าเริ่มต้นคือ -6. หากตั้งไว้ล่วงหน้าหลายระดับ
ถูกระบุไว้ อันสุดท้ายจะมีผลใช้บังคับ หากห่วงโซ่ตัวกรองแบบกำหนดเองมีอยู่แล้ว
ที่ระบุ การตั้งค่าระดับการบีบอัดที่ตั้งไว้ล่วงหน้าจะล้างห่วงโซ่ตัวกรองแบบกำหนดเอง

ความแตกต่างระหว่างค่าที่ตั้งไว้ล่วงหน้ามีความสำคัญมากกว่ากับ gzip(1) และ
bzip2(1). การตั้งค่าการบีบอัดที่เลือกกำหนดความต้องการหน่วยความจำของ
ตัวคลายการบีบอัด ดังนั้นการใช้ระดับที่ตั้งไว้สูงเกินไปอาจทำให้เจ็บปวดได้
แตกไฟล์บนระบบเก่าที่มี RAM น้อย โดยเฉพาะ มัน ไม่ a
ดี ความคิด ไปยัง สุ่มสี่สุ่มห้า ใช้ -9 for ทุกอย่าง เหมือนมันมักจะอยู่กับ gzip(1) และ
bzip2(1)

-0 ... -3
นี่เป็นพรีเซ็ตที่ค่อนข้างเร็ว -0 บางครั้งก็เร็วกว่า gzip -9 ในขณะที่
บีบอัดได้ดีขึ้นมาก อันที่สูงกว่ามักจะมีความเร็วเทียบได้กับ
bzip2(1) ด้วยอัตราส่วนการอัดที่เทียบเท่าหรือดีกว่า ถึงแม้ว่าผลลัพธ์
ขึ้นอยู่กับประเภทของข้อมูลที่ถูกบีบอัดเป็นอย่างมาก

-4 ... -6
บีบอัดได้ดีถึงดีมากในขณะที่ยังคงใช้หน่วยความจำของตัวคลายการบีบอัด
สมเหตุสมผลแม้กับระบบเก่า -6 เป็นค่าตั้งต้นซึ่งมักจะเป็นสิ่งที่ดี
ทางเลือก เช่น การกระจายไฟล์ที่ต้องการแตกไฟล์แม้ใน
ระบบที่มีเพียง 16 MiB RAM (-5e or -6e อาจคุ้มค่าที่จะพิจารณาด้วย
ดู --สุดขีด.)

-7 ... -9
เหล่านี้เป็นเหมือน -6 แต่ด้วยหน่วยความจำคอมเพรสเซอร์และตัวขยายที่สูงกว่า
ความต้องการ. สิ่งเหล่านี้มีประโยชน์เฉพาะเมื่อบีบอัดไฟล์ที่ใหญ่กว่า
8 MiB, 16 MiB และ 32 MiB ตามลำดับ

บนฮาร์ดแวร์เดียวกัน ความเร็วในการคลายการบีบอัดจะอยู่ที่ค่าคงที่ประมาณ
ไบต์ของข้อมูลที่บีบอัดต่อวินาที กล่าวอีกนัยหนึ่งยิ่งการบีบอัดดีขึ้น
การบีบอัดมักจะเร็วขึ้น นอกจากนี้ยังหมายถึงปริมาณของ
เอาต์พุตแบบไม่บีบอัดที่ผลิตได้ต่อวินาทีอาจแตกต่างกันไปมาก

ตารางต่อไปนี้สรุปคุณสมบัติของค่าที่ตั้งไว้ล่วงหน้า:

ที่ตั้งไว้ล่วงหน้า DictSize CompCPU CompMem DecMem
-0 256 KiB 0 3 MiB 1 MiB
-1 1 MiB 1 9 MiB 2 MiB
-2 2 MiB 2 17 MiB 3 MiB
-3 4 MiB 3 32 MiB 5 MiB
-4 4 MiB 4 48 MiB 5 MiB
-5 8 MiB 5 94 MiB 9 MiB
-6 8 MiB 6 94 MiB 9 MiB
-7 16 MiB 6 186 MiB 17 MiB
-8 32 MiB 6 370 MiB 33 MiB
-9 64 MiB 6 674 MiB 65 MiB

คำอธิบายคอลัมน์:

· DictSize คือขนาดพจนานุกรม LZMA2 การใช้ a . เป็นการสิ้นเปลืองหน่วยความจำ
พจนานุกรมที่ใหญ่กว่าขนาดของไฟล์ที่ไม่บีบอัด นี่คือเหตุผลที่มัน
ดีที่จะหลีกเลี่ยงการใช้ที่ตั้งไว้ล่วงหน้า -7 ... -9 เมื่อไม่มีความต้องการที่แท้จริงสำหรับพวกเขา
At -6 และต่ำกว่านั้น ปริมาณของหน่วยความจำที่เสียไปมักจะต่ำพอที่จะไม่
เรื่อง.

· CompCPU เป็นการแสดงการตั้งค่า LZMA2 แบบง่ายที่ส่งผลกระทบ
ความเร็วในการบีบอัด ขนาดพจนานุกรมก็มีผลกับความเร็วเช่นกัน ดังนั้นในขณะที่ CompCPU เป็น
เหมือนกันสำหรับระดับ -6 ... -9ระดับที่สูงขึ้นยังคงมีแนวโน้มที่จะช้าลงเล็กน้อย
เพื่อให้ช้าลงและอาจบีบอัดได้ดีขึ้น ดู --สุดขีด.

· CompMem มีข้อกำหนดหน่วยความจำคอมเพรสเซอร์ในโหมดเธรดเดียว
อาจแตกต่างกันเล็กน้อยระหว่าง xz รุ่น ความต้องการหน่วยความจำของ
โหมดมัลติเธรดในอนาคตอาจสูงกว่าโหมดมัลติเธรดแบบเดี่ยวอย่างมาก
โหมดเธรด

· DecMem มีข้อกำหนดหน่วยความจำของตัวขยายขนาด นั่นคือการบีบอัด
การตั้งค่ากำหนดความต้องการหน่วยความจำของตัวขยายขนาด ที่แน่นอน
การใช้หน่วยความจำ decompressor นั้นมากกว่าขนาดพจนานุกรม LZMA2 เล็กน้อย แต่
ค่าในตารางถูกปัดเศษขึ้นเป็น MiB เต็มตัวถัดไป

-e, --สุดขีด
ใช้ตัวแปรที่ช้ากว่าของระดับการบีบอัดที่ตั้งไว้ล่วงหน้าที่เลือก (-0 ... -9) มัน
หวังว่าจะได้อัตราส่วนการอัดที่ดีขึ้นเล็กน้อย แต่โชคไม่ดี กระป๋องนี้
ยังทำให้มันแย่ลง การใช้หน่วยความจำ Decompressor จะไม่ได้รับผลกระทบ แต่ Compressor
การใช้หน่วยความจำเพิ่มขึ้นเล็กน้อยในระดับที่ตั้งไว้ล่วงหน้า -0 ... -3.

เนื่องจากมีสองสถานีที่ตั้งไว้ล่วงหน้าที่มีขนาดพจนานุกรม 4 MiB และ 8 MiB ค่าที่ตั้งล่วงหน้า -3e
และ -5e ใช้การตั้งค่าที่เร็วกว่าเล็กน้อย (CompCPU ต่ำกว่า) กว่า -4e และ -6e,
ตามลำดับ ด้วยวิธีนี้จะไม่มีพรีเซ็ตสองตัวที่เหมือนกัน

ที่ตั้งไว้ล่วงหน้า DictSize CompCPU CompMem DecMem
-0e 256 KiB 8 4 MiB 1 MiB
-1e 1 MiB 8 13 MiB 2 MiB
-2e 2 MiB 8 25 MiB 3 MiB
-3e 4 MiB 7 48 MiB 5 MiB
-4e 4 MiB 8 48 MiB 5 MiB
-5e 8 MiB 7 94 MiB 9 MiB
-6e 8 MiB 8 94 MiB 9 MiB
-7e 16 MiB 8 186 MiB 17 MiB
-8e 32 MiB 8 370 MiB 33 MiB
-9e 64 MiB 8 674 MiB 65 MiB

ตัวอย่างเช่น มีทั้งหมดสี่สถานีที่ตั้งไว้ล่วงหน้าที่ใช้พจนานุกรม 8 MiB ซึ่ง
เรียงลำดับจากเร็วที่สุดไปช้าที่สุดคือ -5, -6, -5eและ -6e.

--เร็ว
--ดีที่สุด เหล่านี้เป็นนามแฝงที่ค่อนข้างทำให้เข้าใจผิดสำหรับ -0 และ -9ตามลำดับ เหล่านี้คือ
มีให้สำหรับความเข้ากันได้ย้อนหลังกับ LZMA Utils เท่านั้น หลีกเลี่ยงการใช้สิ่งเหล่านี้
ตัวเลือก

--block-size=ขนาด
เมื่อบีบอัดถึง .xz รูปแบบ แบ่งข้อมูลที่ป้อนเข้าเป็นบล็อกของ ขนาด ไบต์
บล็อกถูกบีบอัดแยกจากกัน

--memlimit-บีบอัด=จำกัด
กำหนดขีดจำกัดการใช้หน่วยความจำสำหรับการบีบอัด หากระบุตัวเลือกนี้หลายรายการ
ครั้งสุดท้ายจะมีผล

หากการตั้งค่าการบีบอัดเกิน จำกัด, xz จะปรับการตั้งค่าลง
เพื่อไม่ให้เกินขีด จำกัด อีกต่อไปและแสดงประกาศที่อัตโนมัติ
ปรับเสร็จแล้ว การปรับดังกล่าวไม่ได้ทำเมื่อบีบอัดด้วย
--รูปแบบ=ดิบ หรือถ้า --no-adjust ได้รับการระบุ ในกรณีดังกล่าว ข้อผิดพลาดคือ
ปรากฏขึ้นและ xz จะออกพร้อมกับสถานะการออก 1

พื้นที่ปลูก จำกัด สามารถระบุได้หลายวิธี:

· จำกัด สามารถเป็นค่าสัมบูรณ์ในหน่วยไบต์ การใช้คำต่อท้ายจำนวนเต็ม เช่น เอ็บ
สามารถเป็นประโยชน์ ตัวอย่าง: --memlimit-compress=80MiB

· จำกัด สามารถระบุเป็นเปอร์เซ็นต์ของหน่วยความจำกายภาพทั้งหมด (RAM) นี้
จะมีประโยชน์โดยเฉพาะอย่างยิ่งเมื่อตั้งค่า XZ_DEFAULTS ตัวแปรสภาพแวดล้อมใน a
สคริปต์การเริ่มต้นเชลล์ที่ใช้ร่วมกันระหว่างคอมพิวเตอร์เครื่องอื่น ที่
วิธีที่ขีดจำกัดจะใหญ่ขึ้นโดยอัตโนมัติในระบบที่มีหน่วยความจำมากขึ้น ตัวอย่าง:
--memlimit-บีบอัด=70%

· จำกัด สามารถรีเซ็ตกลับเป็นค่าเริ่มต้นได้โดยการตั้งค่าเป็น 0. นี่คือ
ปัจจุบันเทียบเท่ากับการตั้งค่า จำกัด ไปยัง แม็กซ์ (ไม่จำกัดการใช้หน่วยความจำ) ครั้งหนึ่ง
มีการใช้การสนับสนุนมัลติเธรด อาจมีความแตกต่างระหว่าง 0
และ แม็กซ์ สำหรับเคสแบบมัลติเธรดจึงแนะนำให้ใช้ 0 แทน แม็กซ์
จนกว่าจะมีการตัดสินใจรายละเอียด

ดูเพิ่มเติมที่ส่วน หน่วยความจำ การใช้.

--memlimit-คลายการบีบอัด=จำกัด
ตั้งค่าขีดจำกัดการใช้หน่วยความจำสำหรับการบีบอัด สิ่งนี้ยังส่งผลกระทบต่อ --รายการ โหมด. ถ้า
การดำเนินการเป็นไปไม่ได้โดยไม่เกิน จำกัด, xz จะแสดงข้อผิดพลาด
และการแตกไฟล์จะล้มเหลว ดู --memlimit-บีบอัด=จำกัด เป็นไปได้
วิธีการระบุ จำกัด.

-M จำกัด, --memlimit=จำกัด, --หน่วยความจำ=จำกัด
ซึ่งเทียบเท่ากับการระบุ --memlimit-บีบอัด=จำกัด
--memlimit-คลายการบีบอัด=จำกัด.

--no-adjust
แสดงข้อผิดพลาดและออกหากการตั้งค่าการบีบอัดเกินการใช้หน่วยความจำ
ขีด จำกัด ค่าเริ่มต้นคือการปรับการตั้งค่าลงเพื่อให้การใช้งานหน่วยความจำ
ไม่เกินขีด จำกัด การปรับอัตโนมัติจะถูกปิดใช้งานเสมอเมื่อสร้าง raw
สตรีม (--รูปแบบ=ดิบ).

-T หัวข้อ, --กระทู้=หัวข้อ
ระบุจำนวนเธรดของผู้ปฏิบัติงานที่จะใช้ จำนวนเธรดจริงสามารถเป็น
น้อยกว่า หัวข้อ หากใช้เธรดมากเกินขีดจำกัดการใช้หน่วยความจำ

มัลติเธรด การอัด และ การบีบอัด เป็น ไม่ การดำเนินการ ยัง, so นี้ ตัวเลือก
มี ไม่ ผล for ขณะนี้

As of การเขียน (2010-09-27) it ยังไม่ได้ รับ ตัดสินใจ if หัวข้อ จะ be มือสอง by
ผิดนัด on มัลติคอร์ ระบบ ครั้งหนึ่ง สนับสนุน for เกลียว มี รับ ดำเนินการ
ความคิดเห็น เป็น ยินดีต้อนรับ ปัจจัยที่ซับซ้อนคือการใช้เธรดจำนวนมากจะ
เพิ่มการใช้หน่วยความจำอย่างมาก โปรดทราบว่าหากมัลติเธรดจะเป็น
ดีฟอลต์ก็อาจจะทำเพื่อให้โหมด single-threaded และ multithreaded
ให้ผลผลิตเท่ากัน ดังนั้นอัตราส่วนการอัดจะไม่ได้รับผลกระทบอย่างมากหาก
เธรดจะเปิดใช้งานตามค่าเริ่มต้น

ประเพณี คอมเพรสเซอร์ กรอง ห่วงโซ่
ห่วงโซ่ตัวกรองแบบกำหนดเองช่วยให้ระบุการตั้งค่าการบีบอัดโดยละเอียดแทน
ขึ้นอยู่กับการตั้งค่าที่เกี่ยวข้องกับระดับที่ตั้งไว้ล่วงหน้า เมื่อห่วงโซ่ตัวกรองแบบกำหนดเองคือ
ระบุ ตัวเลือกระดับการบีบอัดที่ตั้งไว้ล่วงหน้า (-0 ... -9 และ --สุดขีด) อยู่เงียบๆ
ละเว้น

ห่วงโซ่ตัวกรองเปรียบได้กับการวางท่อบนบรรทัดคำสั่ง เมื่อบีบอัด
อินพุตที่ไม่บีบอัดไปที่ตัวกรองแรก และเอาต์พุตไปที่ตัวกรองถัดไป (if
ใด ๆ). เอาต์พุตของตัวกรองสุดท้ายจะถูกเขียนไปยังไฟล์บีบอัด สูงสุด
จำนวนตัวกรองในห่วงโซ่คือสี่ แต่โดยทั่วไปแล้วห่วงโซ่ตัวกรองจะมีเพียงหนึ่งหรือสอง
ฟิลเตอร์

ตัวกรองจำนวนมากมีข้อ จำกัด ว่าสามารถอยู่ในห่วงโซ่ตัวกรองได้อย่างไร: ตัวกรองบางตัวสามารถ
ทำงานเป็นตัวกรองสุดท้ายในห่วงโซ่เท่านั้น บางส่วนเป็นตัวกรองที่ไม่ใช่ตัวกรองสุดท้าย และบางส่วนทำงาน
ในตำแหน่งใด ๆ ในห่วงโซ่ ขึ้นอยู่กับตัวกรอง ข้อจำกัดนี้มีอยู่ในตัว
ไปจนถึงการออกแบบตัวกรองหรือมีไว้เพื่อป้องกันปัญหาด้านความปลอดภัย

มีการระบุห่วงโซ่ตัวกรองแบบกำหนดเองโดยใช้ตัวเลือกตัวกรองอย่างน้อยหนึ่งตัวตามลำดับ
ต้องการในห่วงโซ่ตัวกรอง นั่นคือลำดับของตัวเลือกตัวกรองมีความสำคัญ!
เมื่อถอดรหัสสตรีมดิบ (--รูปแบบ=ดิบ) ห่วงโซ่ตัวกรองถูกระบุในลำดับเดียวกัน
ตามที่ระบุเมื่อบีบอัด

ตัวกรองใช้ตัวกรองเฉพาะ ตัวเลือก เป็นรายการที่คั่นด้วยจุลภาค เครื่องหมายจุลภาคเพิ่มเติมใน ตัวเลือก
จะถูกละเลย ทุกตัวเลือกมีค่าเริ่มต้น ดังนั้นคุณต้องระบุเฉพาะค่าที่คุณต้องการ
เพื่อเปลี่ยน

--lzma1[=ตัวเลือก]
--lzma2[=ตัวเลือก]
เพิ่มตัวกรอง LZMA1 หรือ LZMA2 ลงในห่วงโซ่ตัวกรอง ตัวกรองเหล่านี้ใช้ได้เฉพาะในนาม
ตัวกรองสุดท้ายในห่วงโซ่

LZMA1 เป็นตัวกรองรุ่นเก่า ซึ่งได้รับการสนับสนุนเกือบทั้งหมดเนื่องจากรุ่นเดิม .lzma
รูปแบบไฟล์ซึ่งรองรับเฉพาะ LZMA1 LZMA2 เป็นเวอร์ชันที่อัปเดตของ LZMA1 to
แก้ไขปัญหาในทางปฏิบัติของ LZMA1 NS .xz รูปแบบใช้ LZMA2 และไม่รองรับ
LZMA1 เลย ความเร็วในการบีบอัดและอัตราส่วนของ LZMA1 และ LZMA2 นั้นในทางปฏิบัติ
เหมือนกัน.

LZMA1 และ LZMA2 ใช้ชุดเดียวกันของ ตัวเลือก:

ที่ตั้งไว้ล่วงหน้า=ตั้งล่วงหน้า
รีเซ็ต LZMA1 หรือ LZMA2 . ทั้งหมด ตัวเลือก ไปยัง ตั้งล่วงหน้า. ตั้งล่วงหน้า ประกอบด้วยจำนวนเต็ม,
ซึ่งอาจตามด้วยตัวปรับแต่งพรีเซ็ตตัวอักษรเดียว จำนวนเต็มสามารถเป็น
ราคาเริ่มต้นที่ 0 ไปยัง 9จับคู่ตัวเลือกบรรทัดคำสั่ง -0 ... -9. เพียง
ตัวแก้ไขที่รองรับอยู่ในขณะนี้ eซึ่งตรงกับ --สุดขีด. ค่าเริ่มต้น
ตั้งล่วงหน้า is 6ซึ่งค่าเริ่มต้นสำหรับส่วนที่เหลือของ LZMA1 หรือ
LZMA2 ตัวเลือก ถูกนำมา

ดิกต์=ขนาด
พจนานุกรม (บัฟเฟอร์ประวัติ) ขนาด ระบุจำนวนไบต์ล่าสุด
ข้อมูลที่ไม่บีบอัดที่ถูกประมวลผลจะถูกเก็บไว้ในหน่วยความจำ อัลกอริทึมพยายามค้นหา
ทำซ้ำลำดับไบต์ (ตรงกัน) ในข้อมูลที่ไม่บีบอัดและแทนที่
โดยมีการอ้างอิงถึงข้อมูลในพจนานุกรมในปัจจุบัน ยิ่งโต
ตามพจนานุกรม ยิ่งมีโอกาสหาคู่ ดังนั้นการเพิ่มขึ้น
พจนานุกรม ขนาด มักจะปรับปรุงอัตราการบีบอัด แต่พจนานุกรมที่ใหญ่กว่า
กว่าไฟล์ที่ไม่บีบอัดจะทำให้หน่วยความจำเสีย

พจนานุกรมทั่วไป ขนาด คือตั้งแต่ 64 KiB ถึง 64 MiB ขั้นต่ำคือ 4 KiB
การบีบอัดสูงสุดในปัจจุบันคือ 1.5 GiB (1536 MiB) NS
ตัวขยายขนาดรองรับพจนานุกรมแล้วไม่เกินหนึ่งไบต์ที่น้อยกว่า 4 GiB
ซึ่งเป็นรูปแบบสตรีม LZMA1 และ LZMA2 สูงสุด

พจนานุกรม ขนาด และตัวค้นหาการจับคู่ (mf) ร่วมกันกำหนดการใช้หน่วยความจำของ
ตัวเข้ารหัส LZMA1 หรือ LZMA2 พจนานุกรม (หรือใหญ่กว่า) เดียวกัน ขนาด is
ที่จำเป็นสำหรับการคลายการบีบอัดที่ใช้เมื่อบีบอัดดังนั้นหน่วยความจำ
การใช้ตัวถอดรหัสถูกกำหนดโดยขนาดพจนานุกรมที่ใช้เมื่อ
การบีบอัด NS .xz ส่วนหัวเก็บพจนานุกรม ขนาด ไม่ว่าจะเป็น 2^n หรือ 2^n
+ 2^(n-1) ดังนั้น พวกนี้ ขนาด ค่อนข้างนิยมสำหรับการบีบอัด อื่น
ขนาด จะถูกปัดเศษขึ้นเมื่อเก็บไว้ใน .xz ส่วนหัว

lc=lc ระบุจำนวนบิตบริบทตามตัวอักษร ค่าต่ำสุดคือ 0 และ the
สูงสุดคือ 4; ค่าเริ่มต้นคือ 3 นอกจากนี้ ผลรวมของ lc และ lp จะต้องไม่
เกิน 4

ไบต์ทั้งหมดที่ไม่สามารถเข้ารหัสได้เนื่องจากการจับคู่จะถูกเข้ารหัสเป็นตัวอักษร ที่
คือ อักษรเป็นเพียงไบต์ 8 บิตที่เข้ารหัสทีละครั้ง

การเข้ารหัสตามตัวอักษรทำให้สันนิษฐานว่าสูงสุด lc บิตของ
ไบต์ที่ไม่บีบอัดก่อนหน้าสัมพันธ์กับไบต์ถัดไป เช่น โดยทั่วไป
ข้อความภาษาอังกฤษ ตัวพิมพ์ใหญ่มักตามด้วยอักษรตัวพิมพ์เล็ก
และตัวพิมพ์เล็กมักจะตามด้วยอักษรตัวพิมพ์เล็กอีกตัว
ในชุดอักขระ US-ASCII สามบิตสูงสุดคือ 010 สำหรับตัวพิมพ์ใหญ่
ตัวอักษรและ 011 สำหรับตัวพิมพ์เล็ก เมื่อไหร่ lc อย่างน้อย 3 ตัวอักษร
การเข้ารหัสสามารถใช้ประโยชน์จากคุณสมบัตินี้ในข้อมูลที่ไม่บีบอัด

ค่าเริ่มต้น (3) มักจะดี หากคุณต้องการการบีบอัดสูงสุด
ทดสอบ lc=4. บ้างครั้งก็ช่วยบ้างบางทีก็บีบคั้น
แย่ลง. ถ้ามันทำให้แย่ลงให้ทดสอบเช่น lc=2 เกินไป

lp=lp ระบุจำนวนบิตตำแหน่งตามตัวอักษร ค่าต่ำสุดคือ 0 และ the
สูงสุดคือ 4; ค่าเริ่มต้นคือ 0

Lp ส่งผลกระทบต่อชนิดของการจัดตำแหน่งในข้อมูลที่ไม่บีบอัดจะถือว่าเมื่อ
การเข้ารหัสตัวอักษร ดู pb ด้านล่างสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการจัดตำแหน่ง

pb=pb ระบุจำนวนบิตตำแหน่ง ขั้นต่ำคือ 0 และสูงสุดคือ 4;
ค่าเริ่มต้นคือ 2

Pb ส่งผลต่อการจัดตำแหน่งในข้อมูลที่ไม่มีการบีบอัดใน
ทั่วไป. ค่าเริ่มต้นหมายถึงการจัดตำแหน่งสี่ไบต์ (2^pb=2^2=4) ซึ่งมักจะ
ทางเลือกที่ดีเมื่อไม่มีการเดาที่ดีกว่า

เมื่อทราบความพอดี ให้ตั้งค่า pb จึงอาจลดขนาดไฟล์
เล็กน้อย. เช่น ไฟล์ข้อความที่มีการจัดตำแหน่งหนึ่งไบต์ (US-ASCII
ISO-8859-*, UTF-8), การตั้งค่า pb=0 สามารถปรับปรุงการบีบอัดได้เล็กน้อย สำหรับ
ข้อความ UTF-16 pb=1 เป็นทางเลือกที่ดี หากการเรียงตัวเป็นเลขคี่ เช่น
3 ไบต์, pb=0 อาจเป็นทางเลือกที่ดีที่สุด

แม้ว่าการวางแนวสมมติสามารถปรับได้ด้วย pb และ lp, LZMA1 และ
LZMA2 ยังคงชอบการจัดตำแหน่ง 16 ไบต์เล็กน้อย มันอาจจะคุ้มค่าที่จะเข้าสู่
บัญชีเมื่อออกแบบรูปแบบไฟล์ที่มักจะถูกบีบอัด
ด้วย LZMA1 หรือ LZMA2

mf=mf ตัวค้นหาการจับคู่มีผลอย่างมากต่อความเร็วของตัวเข้ารหัส การใช้หน่วยความจำ และ
อัตราการบีบอัด โดยปกติแล้วตัวค้นหาการจับคู่ Hash Chain จะเร็วกว่า Binary
ค้นหาการจับคู่ต้นไม้ ค่าเริ่มต้นขึ้นอยู่กับ ตั้งล่วงหน้า: 0 ใช้ hc3, 1-3 ใช้
hc4และที่เหลือใช้ bt4.

ตัวค้นหาการแข่งขันต่อไปนี้ได้รับการสนับสนุน สูตรการใช้หน่วยความจำด้านล่าง
เป็นการประมาณคร่าวๆ ซึ่งใกล้เคียงกับความเป็นจริงมากที่สุดเมื่อ Dict คือ
กำลังสอง

hc3 Hash Chain พร้อมการแฮชแบบ 2 และ 3 ไบต์
ค่าต่ำสุดสำหรับ ดี: 3
การใช้ความจำ:
Dict * 7.5 (ถ้า Dict <= 16 MiB);
Dict * 5.5 + 64 MiB (ถ้า Dict > 16 MiB)

hc4 Hash Chain พร้อมการแฮชแบบ 2, 3- และ 4 ไบต์
ค่าต่ำสุดสำหรับ ดี: 4
การใช้ความจำ:
Dict * 7.5 (ถ้า Dict <= 32 MiB);
Dict * 6.5 (ถ้า Dict > 32 MiB)

bt2 ทรีไบนารีพร้อมแฮช 2 ไบต์
ค่าต่ำสุดสำหรับ ดี: 2
การใช้ความจำ: Dict * 9.5

bt3 Binary Tree พร้อมการแฮชแบบ 2 และ 3 ไบต์
ค่าต่ำสุดสำหรับ ดี: 3
การใช้ความจำ:
Dict * 11.5 (ถ้า Dict <= 16 MiB);
Dict * 9.5 + 64 MiB (ถ้า Dict > 16 MiB)

bt4 Binary Tree พร้อมการแฮช 2, 3- และ 4 ไบต์
ค่าต่ำสุดสำหรับ ดี: 4
การใช้ความจำ:
Dict * 11.5 (ถ้า Dict <= 32 MiB);
Dict * 10.5 (ถ้า Dict > 32 MiB)

โหมด=โหมด
การอัด โหมด ระบุวิธีการวิเคราะห์ข้อมูลที่ผลิตโดย
ค้นหาการแข่งขัน ได้รับการสนับสนุน โหมด เป็น รวดเร็ว และ ปกติ. ค่าเริ่มต้นคือ รวดเร็ว for
ที่ตั้งไว้ล่วงหน้า 0-3 และ ปกติ for ที่ตั้งไว้ล่วงหน้า 4 9-

มักจะ รวดเร็ว ใช้กับตัวค้นหาการจับคู่ Hash Chain และ ปกติ กับไบนารี
ค้นหาการจับคู่ต้นไม้ นี่คือสิ่งที่ ที่ตั้งไว้ล่วงหน้า ทำ

ดี=ดี
ระบุความยาวที่เหมาะสมสำหรับการจับคู่ เมื่อการแข่งขันของ
อย่างน้อยที่สุด ดี พบไบต์ อัลกอริทึมหยุดมองหาคำว่า เป็นไปได้
แมตช์ที่ดีกว่า

ไนซ์ สามารถเป็น 2-273 ไบต์ ค่าที่สูงกว่ามักจะให้การบีบอัดที่ดีกว่า
อัตราส่วนด้วยความเร็ว ค่าเริ่มต้นขึ้นอยู่กับ ตั้งล่วงหน้า.

ความลึก=ความลึก
ระบุความลึกการค้นหาสูงสุดในตัวค้นหาการจับคู่ ค่าเริ่มต้นคือ
ค่าพิเศษ 0 ซึ่งทำให้คอมเพรสเซอร์พิจารณาความเหมาะสม ความลึก
ราคาเริ่มต้นที่ mf และ ดี.

เหมาะสม ความลึก สำหรับ Hash Chains คือ 4-100 และ 16-1000 สำหรับ Binary Trees
ใช้ค่าที่สูงมากสำหรับ ความลึก สามารถทำให้ตัวเข้ารหัสทำงานช้ามากด้วย
บางไฟล์. หลีกเลี่ยงการตั้งค่า ความลึก มากกว่า 1000 เว้นแต่คุณจะเตรียมที่จะ
ขัดจังหวะการบีบอัดในกรณีที่ใช้เวลานานเกินไป

เมื่อถอดรหัสสตรีมดิบ (--รูปแบบ=ดิบ), LZMA2 ต้องการพจนานุกรมเท่านั้น ขนาด.
LZMA1 ก็ต้องการเช่นกัน lc, lpและ pb.

--x86[=ตัวเลือก]
--powerpc[=ตัวเลือก]
--ia64[=ตัวเลือก]
--แขน[=ตัวเลือก]
--แขนหัวแม่มือ[=ตัวเลือก]
--sparc[=ตัวเลือก]
เพิ่มตัวกรองสาขา/การโทร/ข้าม (BCJ) ไปยังสายโซ่ตัวกรอง สามารถใช้ฟิลเตอร์เหล่านี้ได้
เป็นตัวกรองที่ไม่สุดท้ายในห่วงโซ่ตัวกรองเท่านั้น

ตัวกรอง BCJ จะแปลงที่อยู่สัมพัทธ์ในรหัสเครื่องเป็นค่าสัมบูรณ์
คู่หู สิ่งนี้ไม่เปลี่ยนขนาดของข้อมูล แต่เพิ่มขึ้น
ความซ้ำซ้อนซึ่งสามารถช่วย LZMA2 ให้มีขนาดเล็กลง 0-15% .xz ไฟล์. BCJ
ตัวกรองสามารถย้อนกลับได้เสมอ ดังนั้นการใช้ตัวกรอง BCJ สำหรับข้อมูลที่ไม่ถูกต้องจะไม่สามารถ
ทำให้ข้อมูลสูญหาย แม้ว่าอาจทำให้อัตราส่วนการบีบอัดแย่ลงเล็กน้อย

เป็นการดีที่จะใช้ตัวกรอง BCJ กับไฟล์สั่งการทั้งหมด ไม่จำเป็นต้องทา
เฉพาะในส่วนปฏิบัติการ การใช้ตัวกรอง BCJ กับไฟล์เก็บถาวรที่มี
ไฟล์ที่เรียกใช้งานได้และไม่สามารถเรียกใช้งานได้อาจให้ผลลัพธ์ที่ดีหรือไม่ก็ได้ ดังนั้น
โดยทั่วไปไม่ดีที่จะใช้ตัวกรอง BCJ สุ่มสี่สุ่มห้าเมื่อบีบอัดแพ็คเกจไบนารี
เพื่อจำหน่าย

ตัวกรอง BCJ เหล่านี้เร็วมากและใช้หน่วยความจำเพียงเล็กน้อย หากเป็น BCJ
ตัวกรองปรับปรุงอัตราการบีบอัดของไฟล์ มันสามารถปรับปรุงความเร็วของการบีบอัดที่
ในเวลาเดียวกัน ทั้งนี้เป็นเพราะบนฮาร์ดแวร์เดียวกัน ความเร็วในการคลายการบีบอัดของ
LZMA2 เป็นจำนวนไบต์ของข้อมูลที่บีบอัดโดยประมาณต่อวินาทีโดยประมาณ

ตัวกรอง BCJ เหล่านี้มีปัญหาที่ทราบเกี่ยวกับอัตราส่วนการอัด:

· ไฟล์บางประเภทที่มีโค้ดเรียกทำงาน (เช่น ไฟล์อ็อบเจ็กต์, static
ไลบรารีและโมดูลเคอร์เนล Linux) มีที่อยู่ในคำสั่ง
เติมด้วยค่าฟิลเลอร์ ตัวกรอง BCJ เหล่านี้ยังคงทำที่อยู่
ซึ่งจะทำให้การบีบอัดแย่ลงด้วยไฟล์เหล่านี้

· การใช้ตัวกรอง BCJ กับไฟล์เก็บถาวรที่มีไฟล์ปฏิบัติการที่คล้ายคลึงกันหลายตัวสามารถ
ทำให้อัตราส่วนการอัดแย่กว่าการไม่ใช้ฟิลเตอร์ BCJ นี้เป็นเพราะ
ตัวกรอง BCJ ตรวจไม่พบขอบเขตของไฟล์เรียกทำงาน และ
ไม่รีเซ็ตตัวนับการแปลงที่อยู่สำหรับปฏิบัติการแต่ละรายการ

ปัญหาทั้งสองข้างต้นจะได้รับการแก้ไขในอนาคตในตัวกรองใหม่ เก่า
ตัวกรอง BCJ จะยังคงมีประโยชน์ในระบบฝังตัว เนื่องจากตัวถอดรหัสของ
ตัวกรองใหม่จะใหญ่ขึ้นและใช้หน่วยความจำมากขึ้น

ชุดคำสั่งต่างๆ มีการจัดตำแหน่งต่างกัน:

ตัวกรองการจัดตำแหน่งหมายเหตุ
x86 1 32 บิตหรือ 64 บิต x86
PowerPC 4 Big endian เท่านั้น
ARM 4 Little endian เท่านั้น
ARM-Thumb 2 Little endian เท่านั้น
IA-64 16 endian ใหญ่หรือเล็ก
SPARC 4 endian ใหญ่หรือเล็ก

เนื่องจากข้อมูลที่กรอง BCJ มักจะถูกบีบอัดด้วย LZMA2 อัตราส่วนการบีบอัด
อาจได้รับการปรับปรุงเล็กน้อยหากตั้งค่าตัวเลือก LZMA2 ให้ตรงกับการจัดตำแหน่งของ
ตัวกรอง BCJ ที่เลือก เช่น ตั้งค่าฟิลเตอร์ IA-64 ก็ดี pb=4
ด้วย LZMA2 (2^4=16) ตัวกรอง x86 เป็นข้อยกเว้น ปกติติดดี
การจัดตำแหน่งสี่ไบต์เริ่มต้นของ LZMA2 เมื่อบีบอัดไฟล์เรียกทำงาน x86

ตัวกรอง BCJ ทั้งหมดรองรับเหมือนกัน ตัวเลือก:

เริ่ม =ชดเชย
ระบุจุดเริ่มต้น ชดเชย ที่ใช้ในการแปลงระหว่างญาติและ
ที่อยู่ที่แน่นอน NS ชดเชย จะต้องเป็นผลคูณของการจัดตำแหน่งของ
ตัวกรอง (ดูตารางด้านบน) ค่าเริ่มต้นคือศูนย์ ในทางปฏิบัติ
ค่าเริ่มต้นเป็นสิ่งที่ดี การระบุกำหนดเอง ชดเชย แทบไม่เคยมีประโยชน์เลย

--เดลต้า[=ตัวเลือก]
เพิ่มตัวกรองเดลต้าในห่วงโซ่ตัวกรอง ตัวกรองเดลต้าใช้ได้เฉพาะกับ a
ตัวกรองที่ไม่สุดท้ายในห่วงโซ่ตัวกรอง

ปัจจุบันรองรับเฉพาะการคำนวณเดลต้าแบบไบต์-ไวด์เท่านั้น มีประโยชน์
เมื่อทำการบีบอัด เช่น ภาพบิตแมปที่ไม่บีบอัดหรือเสียง PCM ที่ไม่บีบอัด
อย่างไรก็ตาม อัลกอริธึมวัตถุประสงค์พิเศษอาจให้ผลลัพธ์ที่ดีกว่า
เดลต้า + LZMA2 นี่เป็นเรื่องจริงโดยเฉพาะกับเสียงที่บีบอัดเร็วขึ้นและ
ดีกว่าเช่นกับ FLAC(1)

ที่สนับสนุน ตัวเลือก:

dist=ระยะทาง
ระบุ ระยะทาง ของการคำนวณเดลต้าเป็นไบต์ ระยะทาง จะต้องเป็น
1-256. ค่าเริ่มต้นคือ 1

ตัวอย่างเช่นด้วย dist=2 และอินพุตแปดไบต์ A1 B1 A2 B3 A3 B5 A4 B7, the
เอาต์พุตจะเป็น A1 B1 01 02 01 02 01 02

ทัวร์ ตัวเลือก
-q, --เงียบ
ระงับคำเตือนและประกาศ ระบุสองครั้งเพื่อระงับข้อผิดพลาดด้วย นี้
ตัวเลือกไม่มีผลกับสถานะการออก นั่นคือแม้ว่าคำเตือนจะเป็น
ถูกระงับ สถานะการออกเพื่อระบุคำเตือนยังคงใช้อยู่

-v, --verbose
ละเอียด. หากข้อผิดพลาดมาตรฐานเชื่อมต่อกับเทอร์มินัล xz จะแสดง a
ตัวบ่งชี้ความคืบหน้า ระบุ --verbose สองครั้งจะให้ผลลัพธ์ที่ละเอียดยิ่งขึ้น

ตัวบ่งชี้ความคืบหน้าแสดงข้อมูลต่อไปนี้:

· เปอร์เซ็นต์ความสมบูรณ์จะแสดงขึ้นหากทราบขนาดของไฟล์อินพุต นั่นคือ,
ไม่สามารถแสดงเปอร์เซ็นต์ในท่อได้

· จำนวนข้อมูลที่บีบอัดที่ผลิต (บีบอัด) หรือบริโภค (คลายการบีบอัด)

· จำนวนข้อมูลที่ไม่บีบอัดที่ใช้ไป (บีบอัด) หรือที่ผลิต (คลายการบีบอัด)

· อัตราการบีบอัด ซึ่งคำนวณโดยการหารจำนวนข้อมูลที่บีบอัด
ประมวลผลจนถึงตอนนี้ตามจำนวนข้อมูลที่ไม่ได้บีบอัดที่ประมวลผลแล้ว

· การบีบอัดหรือความเร็วของการบีบอัด ซึ่งวัดจากปริมาณของ
ข้อมูลที่ไม่บีบอัดที่ใช้ไป (การบีบอัด) หรือการผลิต (การบีบอัด) ต่อวินาที
จะปรากฏขึ้นหลังจากผ่านไปไม่กี่วินาทีตั้งแต่ xz เริ่มดำเนินการ
ไฟล์

· เวลาที่ผ่านไปในรูปแบบ M:SS หรือ H:MM:SS

· เวลาที่เหลือโดยประมาณจะแสดงเมื่อทราบขนาดของไฟล์อินพุตเท่านั้น
และไม่กี่วินาทีก็ผ่านไปตั้งแต่ xz เริ่มดำเนินการ
ไฟล์. เวลาจะแสดงในรูปแบบที่แม่นยำน้อยกว่าซึ่งไม่เคยมีเครื่องหมายทวิภาค
เช่น 2 นาที 30 วินาที

เมื่อข้อผิดพลาดมาตรฐานไม่ใช่เทอร์มินัล --verbose จะทำให้ xz พิมพ์ชื่อไฟล์,
ขนาดที่บีบอัด ขนาดที่ไม่บีบอัด อัตราการบีบอัด และอาจรวมถึงความเร็วด้วย
และเวลาที่ผ่านไปในบรรทัดเดียวถึงข้อผิดพลาดมาตรฐานหลังจากบีบอัดหรือ
แตกไฟล์. ความเร็วและเวลาที่ผ่านไปจะรวมเฉพาะเมื่อ
การดำเนินการใช้เวลาอย่างน้อยสองสามวินาที หากดำเนินการไม่เสร็จสิ้น เช่น เนื่องจาก
การหยุดชะงักของผู้ใช้ การพิมพ์เปอร์เซ็นต์ความสมบูรณ์จะถูกพิมพ์ด้วยหากขนาดของ
ไฟล์อินพุตเป็นที่รู้จัก

-Q, --no-เตือน
อย่าตั้งค่าสถานะการออกเป็น 2 แม้ว่าจะตรวจพบเงื่อนไขที่ควรค่าแก่การเตือนก็ตาม
ตัวเลือกนี้ไม่มีผลกับระดับความฟุ่มเฟือย ดังนั้นทั้ง --เงียบ และ --no-เตือน
ต้องใช้เพื่อไม่ให้แสดงคำเตือนและไม่เปลี่ยนสถานะการออก

--robot
พิมพ์ข้อความในรูปแบบแยกวิเคราะห์ด้วยเครื่อง นี้มีวัตถุประสงค์เพื่อให้ง่ายต่อการเขียน
ส่วนหน้าที่ต้องการใช้ xz แทน liblzma ซึ่งอาจจะเป็นกรณีกับ
สคริปต์ต่างๆ เอาต์พุตที่เปิดใช้งานตัวเลือกนี้มีความเสถียรข้าม
xz เผยแพร่ ดูส่วน หุ่นยนต์ โหมด เพื่อดูรายละเอียด

--info-หน่วยความจำ
จอแสดงผลในรูปแบบที่มนุษย์อ่านได้ หน่วยความจำกายภาพ (RAM) เท่าใด xz คิดว่า
ระบบมีและขีดจำกัดการใช้หน่วยความจำสำหรับการบีบอัดและคลายการบีบอัดและออก
ที่ประสบความสำเร็จ

-h, --ช่วยด้วย
แสดงข้อความช่วยเหลือที่อธิบายตัวเลือกที่ใช้บ่อยที่สุด และออก
ที่ประสบความสำเร็จ

-H, --long-help
แสดงข้อความช่วยเหลือที่อธิบายคุณลักษณะทั้งหมดของ xzและออกได้สำเร็จ

-V, --รุ่น
แสดงหมายเลขเวอร์ชันของ xz และ liblzma ในรูปแบบที่มนุษย์อ่านได้ ที่จะได้รับ
เอาต์พุตที่แยกวิเคราะห์ได้ด้วยเครื่อง ระบุ --robot ก่อน --รุ่น.

หุ่นยนต์ โหมด


โหมดหุ่นยนต์เปิดใช้งานด้วยปุ่ม --robot ตัวเลือก. มันทำให้ผลลัพธ์ของ xz ง่ายกว่าที่จะ
แยกวิเคราะห์โดยโปรแกรมอื่น ปัจจุบัน --robot รองรับเฉพาะร่วมกับ --รุ่น,
--info-หน่วยความจำและ --รายการ. จะรองรับการบีบอัดและคลายการบีบอัดปกติ
ในอนาคต

รุ่น
xz --robot --รุ่น จะพิมพ์หมายเลขเวอร์ชันของ xz และ liblzma ดังต่อไปนี้
รูปแบบ:

XZ_VERSION=XYYYZZS
LIBLZMA_VERSION=XYYYZZS

X รุ่นใหญ่.

YYY รุ่นรอง. แม้แต่ตัวเลขก็เสถียร เลขคี่เป็นเวอร์ชันอัลฟ่าหรือเบต้า

ZZZ ระดับแพตช์สำหรับรุ่นเสถียรหรือเพียงตัวนับสำหรับรุ่นพัฒนา

S ความเสถียร 0 คืออัลฟ่า 1 คือเบต้าและ 2 คือเสถียร S ควรเป็น 2 เสมอเมื่อ YYY
เท่ากัน

XYYYZZS เหมือนกันทั้งสองบรรทัด if xz และ liblzma มาจาก XZ Utils รุ่นเดียวกัน

ตัวอย่าง: 4.999.9beta is 49990091 และ 5.0.0 คือ 50000002.

หน่วยความจำ จำกัด ข้อมูล
xz --robot --info-หน่วยความจำ พิมพ์บรรทัดเดียวโดยมีสามคอลัมน์ที่คั่นด้วยแท็บ:

1. จำนวนหน่วยความจำกายภาพทั้งหมด (RAM) เป็นไบต์

2. ขีด จำกัด การใช้หน่วยความจำสำหรับการบีบอัดเป็นไบต์ ค่าพิเศษของศูนย์บ่งชี้ว่า
การตั้งค่าเริ่มต้น ซึ่งสำหรับโหมดเธรดเดียวจะเหมือนกับไม่จำกัด

3. ขีด จำกัด การใช้หน่วยความจำสำหรับการบีบอัดเป็นไบต์ ค่าพิเศษของศูนย์บ่งชี้ว่า
การตั้งค่าเริ่มต้น ซึ่งสำหรับโหมดเธรดเดียวจะเหมือนกับไม่จำกัด

ในอนาคตผลผลิตของ xz --robot --info-หน่วยความจำ อาจมีคอลัมน์มากกว่านี้ แต่ไม่เคยมี
มากกว่าหนึ่งบรรทัด

รายการ โหมด
xz --robot --รายการ ใช้เอาต์พุตที่คั่นด้วยแท็บ คอลัมน์แรกของทุกบรรทัดมีสตริง
ที่ระบุประเภทของข้อมูลที่พบในบรรทัดนั้น:

ชื่อ นี่เป็นบรรทัดแรกเสมอเมื่อเริ่มแสดงรายการไฟล์ คอลัมน์ที่สองบน
บรรทัดคือชื่อไฟล์

ไฟล์ บรรทัดนี้มีข้อมูลโดยรวมเกี่ยวกับ .xz ไฟล์. สายนี้เสมอ
พิมพ์หลัง ชื่อ เส้น

กระแส สายประเภทนี้ใช้เฉพาะเมื่อ --verbose ถูกระบุ มีมากมาย กระแส
เส้นเหมือนมีลำธารใน .xz ไฟล์

ปิดกั้น สายประเภทนี้ใช้เฉพาะเมื่อ --verbose ถูกระบุ มีมากมาย ปิดกั้น
เส้นเนื่องจากมีบล็อกอยู่ใน .xz ไฟล์. ปิดกั้น บรรทัดจะแสดงหลังจากทั้งหมด
กระแส เส้น; ประเภทของเส้นที่ต่างกันจะไม่ถูกแทรกสลับกัน

สรุป
สายประเภทนี้ใช้เฉพาะเมื่อ --verbose ถูกระบุสองครั้ง เส้นนี้คือ
พิมพ์เสร็จแล้ว ปิดกั้น เส้น ชอบ ไฟล์ เส้น สรุป ไลน์ประกอบด้วย
ข้อมูลโดยรวมเกี่ยวกับ .xz ไฟล์

ผลรวม บรรทัดนี้เป็นบรรทัดสุดท้ายของเอาต์พุตรายการเสมอ มันแสดงให้เห็นทั้งหมด
นับและขนาด

คอลัมน์ของ ไฟล์ บรรทัด:
2. จำนวนสตรีมในไฟล์
3. จำนวนบล็อกทั้งหมดในสตรีม
4. ขนาดของไฟล์บีบอัด
5. ขนาดไฟล์ที่ไม่บีบอัด
6. อัตราการบีบอัด เช่น 0.123. หากอัตราส่วนมากกว่า 9.999 ให้ขีดสามขีด
(---) จะแสดงแทนอัตราส่วน
7. รายการชื่อการตรวจสอบความสมบูรณ์ที่คั่นด้วยเครื่องหมายจุลภาค ใช้สตริงต่อไปนี้
สำหรับประเภทเช็คที่ทราบ: ไม่มี, CRC32, CRC64และ SHA-256. สำหรับเช็คที่ไม่รู้จัก
ประเภท ไม่ทราบ-N ใช้โดยที่ N คือ Check ID เป็นเลขฐานสิบ (หนึ่งหรือ
สองหลัก)
8. ขนาดรวมของการขยายสตรีมในไฟล์

คอลัมน์ของ กระแส บรรทัด:
2. หมายเลขสตรีม (สตรีมแรกคือ 1)
3. จำนวนบล็อกในสตรีม
4. การบีบอัดเริ่มต้นออฟเซ็ต
5. ออฟเซ็ตเริ่มต้นที่ไม่มีการบีบอัด
6. ขนาดบีบอัด (ไม่รวมการเติมสตรีม)
7. ขนาดที่ไม่บีบอัด
8. อัตราการบีบอัด
9. ชื่อของการตรวจสอบความสมบูรณ์
10. ขนาดของช่องสตรีม

คอลัมน์ของ ปิดกั้น บรรทัด:
2. จำนวนสตรีมที่มีบล็อคนี้
3. หมายเลขบล็อคสัมพันธ์กับจุดเริ่มต้นของสตรีม (บล็อกแรกคือ 1)
4. บล็อกหมายเลขที่สัมพันธ์กับจุดเริ่มต้นของไฟล์
5. การบีบอัดเริ่มต้นออฟเซ็ตสัมพันธ์กับจุดเริ่มต้นของไฟล์
6. ออฟเซ็ตเริ่มต้นที่ไม่มีการบีบอัดสัมพันธ์กับจุดเริ่มต้นของไฟล์
7. ขนาดบีบอัดทั้งหมดของบล็อก (รวมส่วนหัว)
8. ขนาดที่ไม่บีบอัด
9. อัตราการบีบอัด
10. ชื่อของการตรวจสอบความสมบูรณ์

If --verbose ถูกระบุสองครั้ง คอลัมน์เพิ่มเติมจะรวมอยู่ใน ปิดกั้น เส้น
สิ่งเหล่านี้จะไม่แสดงพร้อมกับรายการเดียว --verboseเพราะต้องรับข้อมูลนี้
หลายคนแสวงหาและอาจช้า:
11. ค่าของการตรวจสอบความสมบูรณ์ในเลขฐานสิบหก
12. ขนาดส่วนหัวของบล็อก
13. บล็อกแฟล็ก: c แสดงว่ามีขนาดบีบอัดอยู่และ u บ่งบอกว่า
ขนาดที่ไม่บีบอัดมีอยู่ หากไม่ได้ตั้งค่าแฟล็ก ให้ขีด (-) แสดงอยู่
แทนเพื่อให้ความยาวของสตริงคงที่ อาจมีการเพิ่มแฟล็กใหม่ต่อท้าย
สตริงในอนาคต
14. ขนาดของข้อมูลที่บีบอัดจริงในบล็อก (ไม่รวม block
ส่วนหัว บล็อกการขยาย และตรวจสอบฟิลด์)
15. จำนวนหน่วยความจำ (เป็นไบต์) ที่จำเป็นในการคลายบล็อกนี้ด้วยสิ่งนี้ xz
รุ่น
16. โซ่กรอง. โปรดทราบว่าตัวเลือกส่วนใหญ่ที่ใช้ในเวลาบีบอัดไม่สามารถ
ที่ทราบเพราะเฉพาะตัวเลือกที่จำเป็นสำหรับการคลายการบีบอัดเท่านั้นที่จะถูกเก็บไว้ใน
.xz ส่วนหัว

คอลัมน์ของ สรุป บรรทัด:
2. จำนวนหน่วยความจำ (เป็นไบต์) ที่จำเป็นในการแตกไฟล์ด้วย this xz
รุ่น
3. ใช่ or ไม่ ระบุว่าส่วนหัวของบล็อกทั้งหมดมีทั้งขนาดที่บีบอัดและ
ขนาดที่ไม่บีบอัดที่เก็บไว้ในนั้น
ตั้งแต่ xz 5.1.2อัลฟา:
4. ขั้นต่ำ xz เวอร์ชันที่จำเป็นในการแตกไฟล์

คอลัมน์ของ ผลรวม สาย:
2. จำนวนสตรีม
3. จำนวนบล็อก
4. ขนาดบีบอัด
5. ขนาดที่ไม่บีบอัด
6. อัตราส่วนกำลังอัดเฉลี่ย
7. รายการที่คั่นด้วยเครื่องหมายจุลภาคของชื่อการตรวจสอบความสมบูรณ์ที่มีอยู่ในไฟล์
8. ขนาดช่องสตรีม
9. จำนวนไฟล์ นี่คือการรักษาลำดับของคอลัมน์ก่อนหน้า the
เช่นเดียวกับ on ไฟล์ เส้น

If --verbose ถูกระบุสองครั้ง คอลัมน์เพิ่มเติมจะรวมอยู่ใน ผลรวม สาย:
10. จำนวนหน่วยความจำสูงสุด (เป็นไบต์) ที่จำเป็นในการคลายไฟล์ด้วยสิ่งนี้
xz รุ่น
11. ใช่ or ไม่ ระบุว่าส่วนหัวของบล็อกทั้งหมดมีทั้งขนาดที่บีบอัดและ
ขนาดที่ไม่บีบอัดที่เก็บไว้ในนั้น
ตั้งแต่ xz 5.1.2อัลฟา:
12. ขั้นต่ำ xz เวอร์ชันที่จำเป็นในการแตกไฟล์

เวอร์ชันในอนาคตอาจเพิ่มประเภทบรรทัดใหม่และสามารถเพิ่มคอลัมน์ใหม่ลงในบรรทัดที่มีอยู่ได้
ประเภท แต่คอลัมน์ที่มีอยู่จะไม่เปลี่ยนแปลง

EXIT สถานภาพ


0 ทั้งหมดเป็นสิ่งที่ดี.

1 เกิดข้อผิดพลาด.

2 มีบางอย่างที่ควรค่าแก่การเตือน แต่ไม่มีข้อผิดพลาดเกิดขึ้นจริง

ประกาศ (ไม่ใช่คำเตือนหรือข้อผิดพลาด) ที่พิมพ์บนข้อผิดพลาดมาตรฐานจะไม่ส่งผลต่อสถานะการออก

และพวกเรา


xz แยกวิเคราะห์รายการตัวเลือกที่คั่นด้วยช่องว่างจากตัวแปรสภาพแวดล้อม XZ_DEFAULTS และ
XZ_OPTตามลำดับนี้ ก่อนแยกวิเคราะห์ตัวเลือกจากบรรทัดคำสั่ง สังเกตว่าเท่านั้น
ตัวเลือกจะถูกแยกวิเคราะห์จากตัวแปรสภาพแวดล้อม ตัวเลือกที่ไม่ใช่ทั้งหมดจะถูกละเว้นอย่างเงียบ ๆ
การแยกวิเคราะห์เสร็จสิ้นด้วย getopt_long(3) ซึ่งใช้สำหรับอาร์กิวเมนต์บรรทัดคำสั่งด้วย

XZ_DEFAULTS
ตัวเลือกเริ่มต้นเฉพาะผู้ใช้หรือทั้งระบบ โดยปกติแล้วสิ่งนี้จะถูกตั้งค่าในเชลล์
สคริปต์เริ่มต้นเพื่อเปิดใช้งาน xzตัวจำกัดการใช้หน่วยความจำของโดยค่าเริ่มต้น ไม่รวม
สคริปต์การเริ่มต้นเชลล์และกรณีพิเศษที่คล้ายกัน สคริปต์ต้องไม่ตั้งค่าหรือ
ยกเลิกการตั้งค่า XZ_DEFAULTS.

XZ_OPT นี้สำหรับผ่านตัวเลือกไปยัง xz เมื่อไม่สามารถตั้งค่าตัวเลือกได้
โดยตรงบน xz บรรทัดคำสั่ง. นี่เป็นกรณีเช่นเมื่อ xz ถูกเรียกใช้โดยสคริปต์
หรือเครื่องมือ เช่น GNU น้ำมันดิน(1):

XZ_OPT=-2v tar caf foo.tar.xz foo

สคริปต์อาจใช้ XZ_OPT เช่น เพื่อตั้งค่าตัวเลือกการบีบอัดเริ่มต้นเฉพาะสคริปต์ มัน
ยังคงแนะนำให้ผู้ใช้แทนที่ XZ_OPT ถ้ามันสมเหตุสมผล เช่น
in sh(1) สคริปต์ที่อาจใช้สิ่งนี้:

XZ_OPT=${XZ_OPT-"-7e"}
ส่งออก XZ_OPT

LZMA ยูทิลิตี้ ความเข้ากันได้


ไวยากรณ์บรรทัดคำสั่งของ xz เป็น superset ของ lzma, unlzmaและ lzcat as
พบจาก LZMA Utils 4.32.x ในกรณีส่วนใหญ่ เป็นไปได้ที่จะแทนที่ LZMA Utils ด้วย XZ
ใช้งานโดยไม่ทำลายสคริปต์ที่มีอยู่ มีบางอย่างที่เข้ากันไม่ได้ซึ่ง
บางครั้งอาจทำให้เกิดปัญหา

การอัด ตั้งล่วงหน้า ระดับ
จำนวนที่ตั้งไว้ล่วงหน้าระดับการบีบอัดไม่เหมือนกันใน xz และ LZMA Utils NS
ความแตกต่างที่สำคัญที่สุดคือวิธีการจับคู่ขนาดพจนานุกรมกับค่าที่ตั้งล่วงหน้าต่างๆ
ขนาดพจนานุกรมจะเท่ากับการใช้หน่วยความจำของตัวขยายขนาดโดยประมาณ

ระดับ xz LZMA Utils
-0 256 KiB ไม่มี
-1 1 MiB 64 KiB
-2 2 MiB 1 MiB
-3 4 MiB 512 KiB
-4 4 MiB 1 MiB
-5 8 MiB 2 MiB
-6 8 MiB 4 MiB
-7 16 MiB 8 MiB
-8 32 MiB 16 MiB
-9 64 MiB 32 MiB

ความแตกต่างของขนาดพจนานุกรมส่งผลต่อการใช้หน่วยความจำของคอมเพรสเซอร์ด้วย แต่ก็มีบ้าง
ความแตกต่างอื่นๆ ระหว่าง LZMA Utils และ XZ Utils ซึ่งทำให้ความแตกต่างยิ่งใหญ่กว่าเดิม:

ระดับ xz LZMA Utils 4.32.x
-0 3 MiB ไม่มี
-1 9 MiB 2 MiB
-2 17 MiB 12 MiB
-3 32 MiB 12 MiB
-4 48 MiB 16 MiB
-5 94 MiB 26 MiB
-6 94 MiB 45 MiB
-7 186 MiB 83 MiB
-8 370 MiB 159 MiB
-9 674 MiB 311 MiB

ระดับที่ตั้งไว้ล่วงหน้าเริ่มต้นใน LZMA Utils คือ -7 ในขณะที่อยู่ใน XZ Utils มันคือ -6ดังนั้นทั้งคู่จึงใช้ 8
พจนานุกรม MiB โดยค่าเริ่มต้น

สตรีม เมื่อเทียบกับ ไม่ใช่สตรีม .lzma ไฟล์
ขนาดไฟล์ที่ไม่บีบอัดสามารถเก็บไว้ใน .lzma หัวข้อ. LZMA Utils ทำอย่างนั้น
เมื่อบีบอัดไฟล์ปกติ อีกทางเลือกหนึ่งคือการทำเครื่องหมายว่าขนาดที่ไม่บีบอัดคือ
ไม่รู้จักและใช้เครื่องหมายสิ้นสุดน้ำหนักบรรทุกเพื่อระบุตำแหน่งที่ตัวขยายการบีบอัดควรหยุด
LZMA Utils ใช้วิธีนี้เมื่อไม่ทราบขนาดที่ไม่บีบอัด ซึ่งเป็นกรณีของ
ตัวอย่างในท่อ

xz รองรับการคลายการบีบอัด .lzma ไฟล์ที่มีหรือไม่มีเครื่องหมายสิ้นสุดน้ำหนักบรรทุก แต่ทั้งหมด .lzma
ไฟล์ที่สร้างโดย xz จะใช้เครื่องหมายสิ้นสุดของเพย์โหลดและมีขนาดที่ไม่บีบอัดที่ทำเครื่องหมายเป็น
ไม่รู้จักใน .lzma หัวข้อ. นี่อาจเป็นปัญหาในสถานการณ์ที่ไม่ปกติบางอย่าง สำหรับ
ตัวอย่าง a .lzma ตัวขยายขนาดในอุปกรณ์ฝังตัวอาจทำงานได้เฉพาะกับไฟล์ที่มี
ขนาดที่ไม่บีบอัดที่รู้จัก หากคุณประสบปัญหานี้ คุณต้องใช้ LZMA Utils หรือ LZMA SDK
เพื่อสร้าง .lzma ไฟล์ที่มีขนาดไม่บีบอัดที่รู้จัก

ได้รับการสนับสนุน .lzma ไฟล์
พื้นที่ปลูก .lzma รูปแบบช่วยให้ lc ค่าได้ถึง 8 และ lp ค่าได้ถึง 4 LZMA Utils can
แตกไฟล์ด้วย any lc และ lpแต่สร้างไฟล์ด้วย .เสมอ lc=3 และ lp=0.
การสร้างไฟล์ร่วมกับผู้อื่น lc และ lp เป็นไปได้ด้วย xz และด้วย LZMA SDK

การใช้งานตัวกรอง LZMA1 ใน liblzma ต้องการให้ผลรวมของ lc และ lp ต้อง
ไม่เกิน 4 ดังนั้น .lzma ไฟล์ที่เกินขีดจำกัดนี้ไม่สามารถแตกไฟล์ได้
กับ xz.

LZMA Utils สร้างเท่านั้น .lzma ไฟล์ที่มีขนาดพจนานุกรม 2^n (กำลัง 2) และ
ยอมรับไฟล์ที่มีขนาดพจนานุกรมใดก็ได้ liblzma รับเท่านั้น .lzma ไฟล์ที่มี
ขนาดพจนานุกรม 2^n หรือ 2^n + 2^(n-1). นี่คือการลดผลบวกลวงเมื่อ
การตรวจสอบ .lzma ไฟล์

ข้อจำกัดเหล่านี้ไม่ควรเป็นปัญหาในทางปฏิบัติ เนื่องจากในทางปฏิบัติทั้งหมด .lzma ไฟล์
ถูกบีบอัดด้วยการตั้งค่าที่ liblzma จะยอมรับ

การลาก ขยะ
เมื่อคลายการบีบอัด LZMA Utils จะไม่สนใจทุกอย่างหลังจากครั้งแรก .lzma กระแส.
ในสถานการณ์ส่วนใหญ่ นี่เป็นข้อบกพร่อง นอกจากนี้ยังหมายความว่า LZMA Utils ไม่รองรับ
คลายการบีบอัด .lzma ไฟล์

หากมีข้อมูลเหลือหลังจากครั้งแรก .lzma ลำธาร, xz ถือว่าไฟล์เสียหาย
เว้นแต่ --สตรีมเดียว ถูกนำมาใช้ นี่อาจทำให้สคริปต์ที่คลุมเครือซึ่งสันนิษฐานว่า
ขยะที่ตามมาจะถูกละเว้น

หมายเหตุ


การบีบอัด เอาท์พุต อาจ แตกต่าง
เอาต์พุตที่บีบอัดที่แน่นอนซึ่งสร้างจากไฟล์อินพุตที่ไม่บีบอัดเดียวกันอาจแตกต่างกันไป
ระหว่างเวอร์ชัน XZ Utils แม้ว่าตัวเลือกการบีบอัดจะเหมือนกันก็ตาม ทั้งนี้เป็นเพราะ
ตัวเข้ารหัสสามารถปรับปรุงได้ (บีบอัดเร็วขึ้นหรือดีขึ้น) โดยไม่ส่งผลต่อรูปแบบไฟล์
เอาต์พุตอาจแตกต่างกันไปตามบิลด์ต่างๆ ของเวอร์ชัน XZ Utils เดียวกัน if
ใช้ตัวเลือกการสร้างที่แตกต่างกัน

ข้างต้นหมายความว่าการดำเนินการ --rsyncable เพื่อสร้าง rsyncable .xz ไฟล์ไม่ขึ้น
ให้เกิดขึ้นโดยไม่แช่แข็งส่วนหนึ่งของการนำเอ็นโค้ดเดอร์ไปใช้งาน ซึ่งสามารถนำไปใช้ได้
กับ --rsyncable.

ที่ฝัง .xz คอมเพรสเซอร์
ที่ฝัง .xz การใช้งานตัวขยายขนาดเช่น XZ Embedded ไม่จำเป็นต้องรองรับไฟล์
สร้างขึ้นด้วยความซื่อสัตย์สุจริต ตรวจสอบ ประเภทอื่นที่ไม่ใช่ ไม่มี และ crc32. เนื่องจากค่าเริ่มต้นคือ
--check=crc64ต้องใช้ --check=ไม่มี or --check=crc32 เมื่อสร้างไฟล์สำหรับฝังตัว
ระบบ

นอกระบบฝังตัวทั้งหมด .xz ตัวขยายรูปแบบรองรับทั้งหมด ตรวจสอบ ประเภทหรือที่
อย่างน้อยสามารถแตกไฟล์โดยไม่ต้องตรวจสอบความสมบูรณ์ ตรวจสอบว่า
ในสิ่งที่สนใจ ตรวจสอบ ไม่รองรับ

XZ Embedded รองรับตัวกรอง BCJ แต่มีเฉพาะค่าเริ่มต้นออฟเซ็ตเท่านั้น

ตัวอย่าง


ข้อมูลพื้นฐานเกี่ยวกับ
บีบอัดไฟล์ foo เข้าไป foo.xz โดยใช้ระดับการบีบอัดเริ่มต้น (-6) และลบ foo
หากการบีบอัดสำเร็จ:

xz ฟู

ขยาย bar.xz เข้าไป บาร์ และอย่าลบ bar.xz แม้ว่าการบีบอัดจะสำเร็จ:

xz -dk bar.xz

สร้างบัญชีตัวแทน baz.tar.xz ด้วยพรีเซ็ต -4e (-4 --สุดขีด) ซึ่งช้ากว่าเช่น
ผิดนัด -6แต่ต้องการหน่วยความจำน้อยกว่าสำหรับการบีบอัดและคลายการบีบอัด (48 MiB และ 5 MiB
ตามลำดับ):

tar cf - baz | xz -4e > baz.tar.xz

ไฟล์ผสมกันและไฟล์ที่ไม่บีบอัดสามารถแตกไฟล์เป็นเอาต์พุตมาตรฐานได้ด้วย a
คำสั่งเดียว:

xz -dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt

Parallel การอัด of หลาย ไฟล์
บน GNU และ *BSD พบ(1) และ xargs(1) สามารถใช้บีบอัดหลาย ๆ ขนานขนานกันได้
ไฟล์:

หา . -type f \! -ชื่อ '*.xz' -print0 \
| xargs -0r -P4 -n16 xz -T1

พื้นที่ปลูก -P ตัวเลือก xargs(1) กำหนดจำนวนขนาน xz กระบวนการ คุ้มค่าที่สุดสำหรับ
-n ตัวเลือกขึ้นอยู่กับจำนวนไฟล์ที่จะบีบอัด หากมีเพียง
สองสามไฟล์ ค่าควรเป็น 1; ด้วยไฟล์นับหมื่น 100 หรือ
มากยิ่งขึ้นอาจเหมาะสมที่จะลดจำนวน xz กระบวนการที่ xargs(1) จะ
ในที่สุดก็สร้าง

ทางเลือก -T1 for xz บังคับให้เข้าสู่โหมดเธรดเดียวเพราะ xargs(1) คือ
ใช้เพื่อควบคุมปริมาณการขนาน

หุ่นยนต์ โหมด
คำนวณจำนวนไบต์ที่บันทึกทั้งหมดหลังจากบีบอัดหลายไฟล์:

xz --robot --list *.xz | awk '/^totals/{print $5-$4}'

สคริปต์อาจต้องการทราบว่ากำลังใช้ใหม่เพียงพอ xz. ดังต่อไปนี้ sh(1) สคริปต์
ตรวจสอบว่าหมายเลขเวอร์ชันของ xz เครื่องมืออย่างน้อย 5.0.0 วิธีนี้คือ
เข้ากันได้กับรุ่นเบต้าเก่าซึ่งไม่รองรับ --robot ตัวเลือก:

ถ้า ! eval "$(xz --robot --version 2> /dev/null)" ||
[ "$XZ_VERSION" -lt 50000002 ]; แล้ว
echo "xz ของคุณเก่าเกินไป"
fi
ยกเลิกการตั้งค่า XZ_VERSION LIBLZMA_VERSION

ตั้งค่าขีด จำกัด การใช้หน่วยความจำสำหรับการบีบอัดโดยใช้ XZ_OPTแต่หากถึงขีดจำกัดแล้ว
ตั้งค่าอย่าเพิ่ม:

NEWLIM=$((123 << 20)) # 123 MiB
OLDLIM=$(xz --robot --info-memory | cut -f3)
ถ้า [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; แล้ว
XZ_OPT="$XZ_OPT --memlimit-decompress=$NEWLIM"
ส่งออก XZ_OPT
fi

ประเพณี คอมเพรสเซอร์ กรอง ห่วงโซ่
การใช้งานที่ง่ายที่สุดสำหรับชุดตัวกรองแบบกำหนดเองคือการปรับแต่งค่าที่ตั้งไว้ล่วงหน้า LZMA2 นี้สามารถ
มีประโยชน์เพราะค่าที่ตั้งไว้ล่วงหน้าครอบคลุมเฉพาะชุดย่อยของชุดค่าผสมที่อาจมีประโยชน์ของ
การตั้งค่าการบีบอัด

คอลัมน์ CompCPU ของตารางจากคำอธิบายของตัวเลือก -0 ... -9 และ
--สุดขีด มีประโยชน์ในการปรับแต่งค่าที่ตั้งล่วงหน้าของ LZMA2 นี่คือส่วนที่เกี่ยวข้อง
รวบรวมจากสองตารางนั้น:

ที่ตั้งไว้ล่วงหน้า CompCPU
-0 0
-1 1
-2 2
-3 3
-4 4
-5 5
-6 6
-5e 7
-6e 8

หากคุณรู้ว่าไฟล์นั้นต้องการพจนานุกรมที่ค่อนข้างใหญ่ (เช่น 32 MiB) เพื่อบีบอัดให้ดี
แต่อยากบีบให้เร็วกว่า xz -8 จะทำ เป็นพรีเซ็ตที่มีค่า CompCPU ต่ำ
(เช่น 1) สามารถแก้ไขได้เพื่อใช้พจนานุกรมที่ใหญ่กว่า:

xz --lzma2=preset=1,dict=32MiB foo.tar

สำหรับบางไฟล์คำสั่งดังกล่าวอาจเร็วกว่า xz -6 ขณะบีบอัด
ดีขึ้นอย่างเห็นได้ชัด อย่างไรก็ตาม ต้องเน้นว่ามีเพียงบางไฟล์เท่านั้นที่ได้รับประโยชน์จาก a
พจนานุกรมขนาดใหญ่ในขณะที่รักษาค่า CompCPU ให้ต่ำ สถานการณ์ที่ชัดเจนที่สุด ที่ a
พจนานุกรมขนาดใหญ่ช่วยได้มาก เป็นไฟล์เก็บถาวรที่มีไฟล์ที่คล้ายกันมากอย่างน้อย a
แต่ละเมกะไบต์ไม่กี่ ขนาดพจนานุกรมต้องใหญ่กว่าใดๆ มาก
แต่ละไฟล์เพื่อให้ LZMA2 ใช้ประโยชน์จากความคล้ายคลึงกันระหว่าง
ไฟล์ต่อเนื่องกัน

หากการใช้หน่วยความจำของคอมเพรสเซอร์และตัวคลายการบีบอัดที่สูงมากนั้นใช้ได้ และไฟล์กำลัง
บีบอัดอย่างน้อยหลายร้อยเมกะไบต์ มันอาจจะมีประโยชน์ที่จะใช้ขนาดที่ใหญ่กว่า
พจนานุกรมกว่า 64 MiB นั้น xz -9 จะใช้:

xz -vv --lzma2=dict=192MiB big_foo.tar

การใช้ -vv (--verbose --verbose) ดังตัวอย่างข้างต้น มีประโยชน์ในการดูหน่วยความจำ
ความต้องการของคอมเพรสเซอร์และตัวบีบอัด จำไว้ว่าการใช้พจนานุกรมที่ใหญ่กว่า
กว่าขนาดของไฟล์ที่ไม่บีบอัดจะทำให้หน่วยความจำสิ้นเปลือง ดังนั้นคำสั่งข้างต้นจึงไม่
มีประโยชน์สำหรับไฟล์ขนาดเล็ก

บางครั้งเวลาบีบอัดก็ไม่สำคัญ แต่การใช้หน่วยความจำของตัวขยายขนาดก็ต้องเป็น
ให้อยู่ในระดับต่ำ เช่น ทำให้สามารถขยายขนาดไฟล์บนระบบฝังตัวได้ NS
คำสั่งต่อไปนี้ใช้ -6e (-6 --สุดขีด) เป็นฐานและตั้งพจนานุกรมไว้เท่านั้น
64 กิบ ไฟล์ผลลัพธ์สามารถแตกไฟล์ได้ด้วย XZ Embedded (นั่นคือสาเหตุ
--check=crc32) โดยใช้หน่วยความจำประมาณ 100 KiB

xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo

หากคุณต้องการบีบไบต์ออกให้ได้มากที่สุด ให้ปรับจำนวนตามตัวอักษร
บิตบริบท (lc) และจำนวนบิตตำแหน่ง (pb) บางครั้งสามารถช่วยได้ การปรับค่า
จำนวนบิตตำแหน่งตามตัวอักษร (lp) อาจช่วยได้ แต่โดยปกติ lc และ pb มีมากขึ้น
สำคัญ. เช่น ไฟล์เก็บถาวรซอร์สโค้ดมีข้อความ US-ASCII เป็นส่วนใหญ่ ดังนั้นบางอย่างเช่น
ต่อไปนี้อาจให้ไฟล์ที่เล็กกว่าเล็กน้อย (เช่น 0.1 %) กว่า xz -6e (ลองโดยไม่ต้อง
lc=4):

xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar

การใช้ตัวกรองอื่นร่วมกับ LZMA2 สามารถปรับปรุงการบีบอัดไฟล์บางประเภทได้
เช่นบีบอัดไลบรารีที่ใช้ร่วมกัน x86-32 หรือ x86-64 โดยใช้ตัวกรอง x86 BCJ:

xz --x86 --lzma2 libfoo.so

โปรดทราบว่าลำดับของตัวเลือกตัวกรองมีความสำคัญ ถ้า --x86 ระบุไว้หลัง
--lzma2, xz จะทำให้เกิดข้อผิดพลาดเพราะไม่มีตัวกรองใด ๆ หลังจาก LZMA2 และ
เนื่องจากไม่สามารถใช้ตัวกรอง x86 BCJ เป็นตัวกรองสุดท้ายในห่วงโซ่ได้

ตัวกรองเดลต้าร่วมกับ LZMA2 สามารถให้ผลลัพธ์ที่ดีกับภาพบิตแมป มันควรจะ
มักจะเอาชนะ PNG ซึ่งมีตัวกรองขั้นสูงมากกว่าเดลต้าทั่วไป แต่ใช้ Deflate
สำหรับการบีบอัดจริง

รูปภาพจะต้องถูกบันทึกในรูปแบบที่ไม่บีบอัด เช่น เป็น TIFF ที่ไม่บีบอัด ระยะทาง
พารามิเตอร์ของตัวกรองเดลต้าถูกตั้งค่าให้ตรงกับจำนวนไบต์ต่อพิกเซลในรูปภาพ
เช่น ต้องการบิตแมป RGB 24 บิต dist=3, และก็ยังดีที่จะผ่าน pb=0 ถึง LZMA2 ถึง
รองรับการจัดตำแหน่งสามไบต์:

xz --delta=dist=3 --lzma2=pb=0 foo.tiff

หากใส่รูปภาพหลายภาพไว้ในไฟล์เดียว (เช่น .tar) ตัวกรองเดลต้าจะ
ทำงานนั้นด้วยตราบใดที่รูปภาพทั้งหมดมีจำนวนไบต์ต่อพิกเซลเท่ากัน

ใช้ xzcat ออนไลน์โดยใช้บริการ onworks.net


Ad


Ad