| PIGZ(1) | General Commands Manual | PIGZ(1) |
نام (NAME)
pigz - فشردهسازی یا باز کردن فایلها
خلاصه دستور (SYNOPSIS)
pigz [ -cdfhikKlLmMnNqrRtz0..9,11 ] [ -b
blocksize ] [ -p threads ] [ -S suffix ]
[ name ... ]
unpigz [ -cfhikKlLmMnNqrRtz ] [ -b blocksize ] [
-p threads ] [ -S suffix ] [ name ...
]
توضیحات (DESCRIPTION)
Pigz با استفاده از ریسمانها (threads) جهت بهرهگیری از چندین پردازنده و هسته، عملیات فشردهسازی را انجام میدهد. ورودی به بلوکهای ۱۲۸ کیلوبایتی تقسیم شده و هر یک بهصورت موازی فشرده میشوند. مقدار بررسی (checksum) هر بلوک نیز بهصورت موازی محاسبه میگردد. دادههای فشردهشده به ترتیب در خروجی نوشته میشوند و یک مقدار بررسی ترکیبی از مقادیر بررسی هر بلوک محاسبه میشود.
قالب داده فشرده تولیدشده در قالبهای gzip، zlib یا تکورودی zip با استفاده از روش فشردهسازی deflate است. این فشردهسازی جریانهای خام و جزئی deflate تولید میکند که توسط یک ریسمان نویسنده واحد به هم متصل شده و با هدر و تریلر مناسب بستهبندی میشوند، که در آن تریلر حاوی مقدار بررسی ترکیبی است.
هر جریان خام جزئی deflate توسط یک بلوک ذخیرهشده خالی (با استفاده از گزینه Z_SYNC_FLUSH در zlib) خاتمه مییابد تا آن جریان بیتی جزئی در مرز یک بایت پایان یابد. این امر اجازه میدهد جریانهای جزئی صرفاً به عنوان دنبالهای از بایتها به هم متصل شوند. این کار سربار بسیار ناچیز ۴ تا ۵ بایتی را برای هر بلوک ورودی به خروجی اضافه میکند.
اندازه پیشفرض بلوک ورودی ۱۲۸ کیلوبایت است، اما میتواند با گزینه -b تغییر یابد. تعداد ریسمانهای فشردهسازی بهطور پیشفرض برابر با تعداد پردازندههای فعال تنظیم شده است، که میتواند با استفاده از گزینه -p تغییر کند. مشخص کردن -p 1 بهطور کامل از استفاده از ریسمانها جلوگیری میکند.
بلوکهای ورودی، در حالی که بهصورت مستقل فشرده میشوند، ۳۲ کیلوبایت پایانی بلوک قبلی را به عنوان یک فرهنگ لغت از پیش تعیینشده بارگذاری میکنند تا کارایی فشردهسازی deflate در یک ریسمان تکین حفظ شود. این رفتار میتواند با استفاده از گزینه -i یا --independent غیرفعال شود، تا بلوکها بتوانند برای بازیابی جزئی خطاها یا دسترسی تصادفی بهطور مستقل از حالت فشرده خارج شوند. همچنین این کار یک بلوک خالی اضافی درج میکند تا بلوکهای مستقل را با قرار دادن دنباله ۹ بایتی (در مبنای ۱۶): 00 00 FF FF 00 00 00 FF FF در ابتدای هر یک مشخص کند.
استخراج از حالت فشرده (Decompression) نمیتواند موازیسازی شود، دستکم بدون جریانهای deflate که بهطور ویژه برای این منظور آماده شده باشند. در نتیجه، pigz از یک ریسمان منفرد (ریسمان اصلی) برای خروج از حالت فشرده استفاده میکند، اما سه ریسمان دیگر برای خواندن، نوشتن و محاسبه مقدار بررسی ایجاد میکند که میتواند در برخی شرایط سرعت باز کردن فشردهسازی را افزایش دهد. باز کردن موازی فشردهسازی میتواند با مشخص کردن یک پردازش ( -dp 1 یا -tp 1 ) غیرفعال شود.
تمام گزینهها در خط فرمان پیش از پردازش هر نامی پردازش میشوند. اگر هیچ نامی در خط فرمان ارائه نشود، یا اگر "-" به عنوان نام داده شود (اما نه پس از "--")، ورودی از stdin خوانده میشود. اگر متغیرهای محیطی GZIP یا PIGZ تنظیم شده باشند، گزینهها پیش از پردازش هر گزینه خط فرمان، ابتدا از مقدار GZIP و سپس از PIGZ خوانده میشوند.
فایلهای فشردهشده میتوانند با استفاده از pigz -d یا unpigz به شکل اولیه خود بازگردانده شوند.
گزینهها (OPTIONS)
- -# --fast --best
- تنظیم سرعت فشردهسازی با استفاده از رقم مشخصشده #، که در آن -1 یا --fast نشاندهنده سریعترین روش فشردهسازی (فشردهسازی کمتر) و -9 یا --best نشاندهنده کندترین روش فشردهسازی (بهترین فشردهسازی) است. -0 به معنی عدم فشردهسازی است. -11 با استفاده از الگوریتم zopfli اثر Jyrki Alakuijala، چند درصد فشردهسازی بهتری را در ازای هزینه سنگین در زمان اجرا فراهم میکند. حالت پیشفرض -6 است.
- -A --alias xxx
- استفاده از xxx به عنوان نام برای هر ورودی --zip از stdin (نام پیشفرض "-" است).
- -b --blocksize mmm
- تنظیم اندازه بلوک فشردهسازی روی mmmK (پیشفرض 128KiB).
- -c --stdout --to-stdout
- نوشتن تمام خروجی پردازششده در stdout (فایل اصلی حذف نخواهد شد).
- -C --comment ccc
- گنجاندن توضیح ارائهشده در هدر gzip یا هدر مرکزی فایل zip.
- -d --decompress --uncompress
- باز کردن ورودی فشردهشده.
- -f --force
- اجبار به بازنویسی، فشردهسازی فایلهای .gz، پیوندها، و ارسال به ترمینال.
- -h --help
- نمایش صفحه راهنما و خروج.
- -H --huffman
- فشردهسازی فقط با استفاده از راهبرد هافمن (Huffman-only).
- -i --independent
- فشردهسازی مستقل بلوکها برای بازیابی هنگام خرابی.
- -k --keep
- حذف نکردن فایل اصلی پس از پردازش.
- -K --zip
- فشردهسازی به قالب تکورودی PKWare zip (.zip).
- -l --list
- فهرست کردن محتویات ورودی فشردهشده.
- -L --license
- نمایش مجوز pigz و خروج.
- -m --no-time
- عدم ذخیره یا بازگردانی زمان تغییر (modification time). گزینه -Nm نام را ذخیره یا بازیابی میکند، اما زمان تغییر را نه. توجه داشته باشید که ترتیب گزینهها مهم است.
- -M --time
- ذخیره یا بازگردانی زمان تغییر. گزینه -nM زمان تغییر را ذخیره یا بازیابی میکند، اما نام را نه. توجه داشته باشید که ترتیب گزینهها مهم است. زمان تغییر فقط برای فایلهای معمولی ذخیره میشود، نه لولهها (pipes).
- -n --no-name
- عدم ذخیره یا بازگردانی نام فایل یا زمان تغییر. این حالت پیشفرض هنگام باز کردن فایل فشرده است. وقتی نام فایل از هدر بازیابی نمیشود، نام فایل فشرده با پسوند حذفشده به عنوان نام فایل بازشده استفاده میشود. هنگامی که زمان تغییر از هدر بازیابی نمیشود، از زمان تغییر فایل فشرده (نه زمان فعلی) استفاده میشود.
- -N --name
- ذخیره یا بازگردانی هم نام فایل و هم زمان تغییر. این حالت پیشفرض هنگام فشردهسازی است.
- -p --processes n
- اجازه دادن به حداکثر n پردازش (پیشفرض تعداد پردازندههای فعال است).
- -q --quiet --silent
- چاپ نکردن هیچ پیامی، حتی هنگام بروز خطا.
- -r --recursive
- پردازش محتویات تمام زیرپوشهها بهصورت بازگشتی.
- -R --rsyncable
- تعیین مکان بلوکها بر اساس ورودی برای سازگاری با rsync.
- -S --suffix .sss
- استفاده از پسوند .sss به جای .gz (برای فشردهسازی).
- -t --test
- آزمایش صحت و سلامت ورودی فشردهشده.
- -U --rle
- فشردهسازی با استفاده از راهبرد کدگذاری طول اجرا (run length encoding).
- -v --verbose
- ارائه خروجی با جزئیات بیشتر.
- -V --version
- نمایش نسخه pigz. گزینه -vV همچنین نسخه zlib را نشان میدهد.
- -z --zlib
- فشردهسازی به قالب zlib (.zz) به جای قالب gzip.
- --
- تمام آرگومانهای پس از "--" به عنوان نام فایل در نظر گرفته میشوند (برای نامهایی که با "-" شروع میشوند).
- این گزینهها مختص سطح فشردهسازی -11 هستند:
- -F --first
- انجام تکرارها در ابتدا، پیش از تقسیم بلوک (پیشفرض در انتها است).
- -I, --iterations n
- تعداد تکرارها برای بهینهسازی (پیشفرض 15).
- -J, --maxsplits n
- حداکثر تعداد بلوکهای تقسیمشده (پیشفرض 15).
- -O --oneblock
- عدم تقسیم به بلوکهای کوچکتر (پیشفرض تقسیم بلوک است).
حق نشر (COPYRIGHT NOTICE)
این نرمافزار «همانطور که هست» ارائه میشود، بدون هرگونه ضمانت صریح یا ضمنی. در هیچ حالتی نویسنده در قبال خسارات ناشی از استفاده از این نرمافزار مسئول نخواهد بود.
Copyright (C) 2007-2023 Mark Adler <madler@alumni.caltech.edu>
| August 19, 2023 |