brotli(1) دستورات کاربر brotli(1)

brotli - فشرده‌سازی یا باز کردن فایل‌های فشرده با الگوریتم Brotli

brotli [گزینه|فایل]...

دستور brcat معادل brotli --decompress --concatenated --stdout است

دستور unbrotli معادل brotli --decompress است

دستور brotli یک الگوریتم فشرده‌سازی همه‌منظوره و بدون اتلاف است که داده‌ها را با استفاده از ترکیبی از گونه‌ای نوین از الگوریتم LZ77، کدگذاری هافمن و مدل‌سازی زمینه مرتبه دوم فشرده می‌کند، همراه با نسبت فشرده‌سازی قابل مقایسه با بهترین روش‌های فشرده‌سازی همه‌منظوره موجود. سرعت آن مشابه با deflate است اما فشرده‌سازی متراکم‌تری ارائه می‌دهد.

نحو خط فرمان brotli مشابه با gzip (1) و zstd (1) است. برخلاف gzip (1)، فایل‌های منبع به‌طور پیش‌فرض حفظ می‌شوند. امکان حذف آن‌ها پس از پردازش با استفاده از گزینه --rm وجود دارد.

آرگومان‌هایی که شبیه به “--name” یا “--name=value” هستند، گزینه محسوب می‌شوند. هر گزینه دارای یک شکل کوتاه “-x” یا “-x value” است. چندین شکل کوتاه از گزینه‌ها می‌توانند ادغام شوند:

•
“--decompress --stdout --suffix=.b” عملکرد یکسانی با
•
“-d -s -S .b” و
•
“-dsS .b” دارد.

دستور brotli دارای ۳ حالت عملیاتی است:

•
حالت پیش‌فرض فشرده‌سازی است؛
•
گزینه --decompress حالت بازگشایی (خروج از حالت فشرده) را فعال می‌کند؛
•
گزینه --test به حالت آزمایش یکپارچگی جابه‌جا می‌شود؛ این گزینه معادل “--decompress --stdout” است با این تفاوت که داده‌های بازگشایی‌شده به‌جای نوشته شدن در خروجی استاندارد، دور ریخته می‌شوند.

هر آرگومان غیرگزینه‌ای یک ورودی فایل است. اگر هیچ فایلی مشخص نشود یا نام فایل برابر با “-” باشد، brotli از ورودی استاندارد می‌خواند. همه آرگومان‌های پس از “--” ورودی‌های فایل به حساب می‌آیند.

مگر اینکه --stdout یا --output مشخص شده باشد، فایل‌ها در یک فایل جدید نوشته می‌شوند که نام آن از نام فایل منبع مشتق شده است:

•
هنگام فشرده‌سازی، یک پسوند به انتهای نام فایل منبع افزوده می‌شود تا نام فایل مقصد به دست آید
•
هنگام بازگشایی، پسوند از انتهای نام فایل منبع حذف می‌شود تا نام فایل مقصد به دست آید

پسوند پیش‌فرض .br است، اما می‌توان آن را با گزینه --suffix تعیین کرد.

گزینه‌های (options) تکراری یا متناقض مجاز نیستند.

•
-#: سطح فشرده‌سازی (۰-۹)؛ مقادیر بزرگ‌تر باعث فشرده‌سازی متراکم‌تر اما کُندتر می‌شوند
•
-c, --stdout: نوشتن در خروجی استاندارد
•
-d, --decompress: حالت بازگشایی (خروج از حالت فشرده)
•
-f, --force: بازنویسی اجباری فایل خروجی
•
-h, --help: نمایش این راهنما و خروج
•
-j, --rm: حذف فایل(های) منبع؛ رفتاری مشابه با gzip (1)
•
-k, --keep: نگه‌داشتن فایل(های) منبع؛ رفتاری مشابه با zstd (1)
•
-n, --no-copy-stat: عدم کپی ویژگی‌ها و مشخصات فایل(های) منبع
•
-o FILE, --output=FILE: فایل خروجی؛ تنها زمانی معتبر است که یک ورودی تکی وجود داشته باشد
•
-q NUM, --quality=NUM: سطح فشرده‌سازی (۰-۱۱)؛ مقادیر بزرگ‌تر باعث فشرده‌سازی متراکم‌تر اما کُندتر می‌شوند
•
-t, --test: حالت آزمایش یکپارچگی فایل
•
-v, --verbose: افزایش میزان جزئیات خروجی
•
-w NUM, --lgwin=NUM: تنظیم اندازه پنجره LZ77 بین (۰، ۱۰-۲۴) (پیش‌فرض: ۲۴)؛ اندازه پنجره برابر با (pow(2, NUM) - 16) است؛ مقدار ۰ تصمیم‌گیری درباره مقدار بهینه را به فشرده‌ساز واگذار می‌کند؛ اندازه‌های بزرگ‌تر پنجره، تراکم را بهبود می‌بخشند؛ رمزگشا ممکن است برای اجرا به حافظه‌ای تا اندازه پنجره نیاز داشته باشد
•
-C B64, --comment=B64: تنظیم یادداشت؛ آرگومان ابتدا بر پایه base64 رمزگشایی می‌شود؛ هنگام رمزگشایی: بررسی یادداشت جریان؛ هنگام فشرده‌سازی: تعبیه یادداشت (اثرانگشت)
•
-D FILE, --dictionary=FILE: استفاده از FILE به عنوان فرهنگ‌لغت خام (LZ77)؛ الزاماً باید از یک فرهنگ‌لغت یکسان هم برای فشرده‌سازی و هم برای بازگشایی استفاده شود
•
-K, --concatenated: هنگام رمزگشایی، پذیرش جریان‌های متوالی و به‌هم‌پیوسته بروتلی به عنوان ورودی
•
-S SUF, --suffix=SUF: پسوند فایل خروجی (پیش‌فرض: .br)
•
-V, --version: نمایش نسخه و خروج
•
-Z, --best: استفاده از بهترین سطح فشرده‌سازی (پیش‌فرض)؛ معادل “-q 11”

قالب پرونده brotli در سند RFC 7932 تعریف شده است:
https://www.ietf.org/rfc/rfc7932.txt

ابزار brotli تحت مجوز آزاد MIT منتشر شده است:
https://opensource.org/licenses/MIT

فهرست پستی:
https://groups.google.com/forum/#!forum/brotli

گزارش اشکالات و خطاها در:
https://github.com/google/brotli/issues

الگوریتم و ابزار brotli توسط Jyrki Alakuijala و Zoltan Szabadka توسعه داده شده است.

14 اوت 2021 brotli 1.0.9