PAX(1) General Commands Manual PAX(1)

pax — خواندن و نوشتن بایگانی‌های فایل و رونوشت سلسله‌مراتب دایرکتوری‌ها

pax [-0cdJjnOvz] [-E limit] [-f archive] [-G group] [-s replstr] [-T range] [-U user] [pattern ...] pax -r [-0cDdiJjknOuvYZz] [-E limit] [-f archive] [-G group] [-M flag] [-o options] [-p string] [-s replstr] [-T range] [-U user] [pattern ...] pax -w [-0adHiJjLOPtuvXz] [-B bytes] [-b blocksize] [-f archive] [-G group] [-M flag] [-o options] [-s replstr] [-T range] [-U user] [-x format] [file ...] pax -rw [-0DdHiJjkLlnOPtuvXYZ] [-G group] [-p string] [-s replstr] [-T range] [-U user] [file ...] directory

pax اعضای یک فایل بایگانی را می‌خواند، می‌نویسد و فهرست می‌کند و سلسله‌مراتب دایرکتوری‌ها را رونوشت می‌نماید. عملکرد pax مستقل از قالب بایگانی خاص است و از طیف گسترده‌ای از قالب‌های مختلف بایگانی پشتیبانی می‌کند. فهرستی از قالب‌های بایگانی پشتیبانی‌شده را می‌توان در توضیحات مربوط به گزینهٔ -x یافت.

وجود گزینه‌های -r و -w مشخص می‌کند که pax در کدام‌یک از حالت‌های عملکردی زیر کار خواهد کرد: (فهرست)، (خواندن)، (نوشتن)، و copy (رونوشت).

⟨none⟩
. pax یک فهرست محتویات از اعضای فایل بایگانی خوانده‌شده از ورودی استاندارد را که نام‌مسیر آن‌ها با آرگومان‌های pattern مشخص‌شده تطابق دارد، در خروجی استاندارد می‌نویسد. فهرست محتویات شامل یک نام فایل در هر خط بوده و با استفاده از میان‌گیر تک‌خطی نوشته می‌شود.
. pax اعضای فایل بایگانی خوانده‌شده از ورودی استاندارد را که نام‌مسیر آن‌ها با آرگومان‌های pattern مشخص‌شده تطابق دارد، استخراج می‌کند. قالب بایگانی و بلوک‌بندی به طور خودکار در ورودی تعیین می‌شود. هنگامی که یک فایل استخراج‌شده یک دایرکتوری باشد، کل سلسله‌مراتب فایل با ریشه در آن دایرکتوری استخراج می‌شود. همهٔ فایل‌های استخراج‌شده نسبت به سلسله‌مراتب فایل فعلی ایجاد می‌شوند. تنظیم مالکیت، زمان‌های دسترسی و تغییر، و حالت فایل برای فایل‌های استخراج‌شده در توضیحات مربوط به گزینهٔ -p با جزئیات بیشتر بررسی شده است.
. pax بایگانی‌ای حاوی عملوندهای file را با استفاده از قالب بایگانی مشخص‌شده در خروجی استاندارد می‌نویسد. هنگامی که هیچ عملوند file مشخص نشده باشد، فهرستی از فایل‌ها برای رونوشت با یک مورد در هر خط از ورودی استاندارد خوانده می‌شود. هنگامی که یک عملوند file یک دایرکتوری نیز باشد، کل سلسله‌مراتب فایل با ریشه در آن دایرکتوری گنجانده خواهد شد.
. pax عملوندهای file را در directory مقصد رونوشت می‌کند. هنگامی که هیچ عملوند file مشخص نشده باشد، فهرستی از فایل‌ها برای رونوشت با یک مورد در هر خط از ورودی استاندارد خوانده می‌شود. هنگامی که یک عملوند file یک دایرکتوری نیز باشد، کل سلسله‌مراتب فایل با ریشه در آن دایرکتوری گنجانده خواهد شد. اثر copy به این صورت است که گویی فایل‌های رونوشت‌شده در یک فایل بایگانی نوشته شده و سپس متعاقباً استخراج شده‌اند، به جز اینکه ممکن است پیوندهای سخت بین فایل‌های اصلی و رونوشت‌شده وجود داشته باشد (گزینهٔ -l در زیر را ببینید).

هشدار: directory مقصد نباید یکی از عملوندهای file یا عضوی از یک سلسله‌مراتب فایل با ریشه در یکی از عملوندهای file باشد. نتیجهٔ copy تحت این شرایط غیرقابل پیش‌بینی است.

هنگام پردازش یک بایگانی آسیب‌دیده در طول عملیات خواندن یا فهرست‌گیری، pax تلاش می‌کند تا از نقص‌های رسانه بازیابی شود و در سراسر بایگانی جستجو می‌کند تا بیشترین تعداد ممکن از اعضای بایگانی را یافته و پردازش کند (برای جزئیات بیشتر درباره مدیریت خطا به گزینهٔ -E مراجعه کنید).

عملوند directory نام‌مسیر یک دایرکتوری مقصد را مشخص می‌کند. اگر عملوند directory وجود نداشته باشد، یا توسط کاربر قابل نوشتن نباشد، یا از نوع دایرکتوری نباشد، pax با یک وضعیت خروج غیرصفر خارج خواهد شد.

عملوند pattern برای انتخاب یک یا چند نام‌مسیر از اعضای بایگانی استفاده می‌شود. اعضای بایگانی با استفاده از نمادگذاری تطبیق الگو که در glob(7) شرح داده شده است، انتخاب می‌شوند. هنگامی که عملوند pattern ارائه نشود، تمام اعضای بایگانی انتخاب خواهند شد. هنگامی که یک pattern با یک دایرکتوری تطابق پیدا کند، کل سلسله‌مراتب فایل با ریشه در آن دایرکتوری انتخاب خواهد شد. هنگامی که یک عملوند pattern حداقل یک عضو بایگانی را انتخاب نکند، pax این عملوندهای pattern را در یک پیام عیب‌یابی در خطای استاندارد می‌نویسد و سپس با وضعیت خروج غیرصفر خارج می‌شود.

عملوند file نام‌مسیر فایلی را مشخص می‌کند که باید رونوشت گرفته شود یا بایگانی گردد. هنگامی که یک عملوند file حداقل یک عضو بایگانی را انتخاب نکند، pax این نام‌مسیرهای عملوند file را در یک پیام عیب‌یابی در خطای استاندارد می‌نویسد و سپس با وضعیت خروج غیرصفر خارج می‌شود.

گزینه‌ها به شرح زیر هستند:

استفاده از نویسهٔ NUL (‘\0’) به عنوان پایان‌دهندهٔ نام‌مسیر، به جای خط‌جدید (‘\n’). این مورد فقط بر نام‌های مسیر خوانده‌شده از ورودی استاندارد در حالت‌های نوشتن و رونوشت، و بر نام‌های مسیر نوشته‌شده در خروجی استاندارد در حالت فهرست اعمال می‌شود. انتظار می‌رود این گزینه در هماهنگی با تابع -print0 در find(1) ، گزینهٔ -d file ... در دستور توکار read از mksh(1) یا پرچم -0 در xargs(1) استفاده شود.
الحاق عملوندهای file داده‌شده به انتهای بایگانی‌ای که قبلاً نوشته شده است. اگر قالب بایگانی با گزینهٔ -x مشخص نشده باشد، قالبی که در حال حاضر در بایگانی استفاده می‌شود انتخاب خواهد شد. هر تلاشی برای الحاق به یک بایگانی با قالبی متفاوت از قالب استفاده‌شده در آن بایگانی باعث می‌شود pax بلافاصله با وضعیت خروج غیرصفر خارج شود. اندازه بلوک‌بندی استفاده‌شده در جلد بایگانی که نوشتن از آنجا شروع می‌شود، برای ادامهٔ آن جلد بایگانی به کار خواهد رفت.

هشدار: بسیاری از دستگاه‌های ذخیره‌سازی قادر به پشتیبانی از عملیات لازم برای انجام عملیات الحاق نیستند. هر تلاشی برای الحاق به یک بایگانی ذخیره‌شده روی چنین دستگاهی ممکن است به بایگانی آسیب رسانده یا نتایج غیرقابل پیش‌بینی دیگری در پی داشته باشد. به طور خاص درایوهای نوار احتمال بیشتری دارد که از عملیات الحاق پشتیبانی نکنند. یک بایگانی ذخیره‌شده در یک فایل معمولی سیستم‌فایل یا روی یک دستگاه دیسک معمولاً از عملیات الحاق پشتیبانی خواهد کرد.

bytes
محدود کردن تعداد بایت‌های نوشته‌شده در یک جلد بایگانی به bytes. حد bytes می‌تواند با ‘m ،’ ‘k’ یا ‘b’ خاتمه یابد تا به ترتیب ضرب در ۱۰۴۸۵۷۶ (1M)، ۱۰۲۴ (1K) یا ۵۱۲ را مشخص کند. یک جفت از حدود bytes می‌تواند با ‘x’ از هم جدا شود تا حاصل‌ضرب را نشان دهد.

هشدار: تنها زمانی از این گزینه استفاده کنید که بایگانی را در دستگاهی می‌نویسید که از شرایط خواندن پایان فایل (end of file) بر اساس آخرین (یا بزرگ‌ترین) آفست نوشتن پشتیبانی می‌کند (مانند یک فایل معمولی یا درایو نوار). استفاده از این گزینه با فلاپی یا دیسک سخت توصیه نمی‌شود.

blocksize
هنگام نوشتن یک بایگانی، خروجی را در یک عدد صحیح اعشاری مثبت از بایت‌ها در هر نوشتن در فایل بایگانی بلوک‌بندی می‌کند. blocksize باید مضربی از ۵۱۲ بایت با حداکثر ۶۴۵۱۲ بایت باشد. اندازه بلوک‌های بایگانی بزرگ‌تر از ۳۲۲۵۶ بایت ناقض استاندارد POSIX بوده و در همه سیستم‌ها سازگار و قابل حمل نخواهند بود. یک blocksize می‌تواند به ‘k’ یا ‘b’ ختم شود تا به ترتیب ضرب در ۱۰۲۴ (1K) یا ۵۱۲ را مشخص کند. یک جفت از مقادیر blocksize می‌تواند با ‘x’ از هم جدا شود تا یک حاصل‌ضرب را نشان دهد. یک دستگاه بایگانی خاص ممکن است محدودیت‌های بیشتری را بر اندازهٔ بلوک‌بندی مورد پشتیبانی خود اعمال کند. هنگامی که بلوک‌بندی مشخص نشده باشد، blocksize پیش‌فرض به قالب بایگانی خاص مورد استفاده بستگی دارد (گزینهٔ -x را ببینید).
تطبیق تمام فایل‌ها یا اعضای بایگانی به جز موارد مشخص‌شده توسط عملوندهای pattern و file.
این گزینه همانند گزینهٔ -u است، با این تفاوت که به جای زمان تغییر محتوای فایل، زمان تغییر اینود فایل بررسی می‌شود. زمان تغییر اینود فایل می‌تواند برای انتخاب فایل‌هایی استفاده شود که اطلاعات اینود آن‌ها (مانند UID، GID و غیره) جدیدتر از رونوشت فایل در directory مقصد است.
باعث می‌شود فایل‌هایی از نوع دایرکتوری که رونوشت گرفته یا بایگانی می‌شوند، یا اعضای بایگانی از نوع دایرکتوری که استخراج می‌شوند، تنها با فایل یا عضو بایگانی دایرکتوری تطابق یابند و نه با سلسله‌مراتب فایلی که در آن دایرکتوری ریشه دارد.
limit
محدود کردن تعداد خطاهای خواندن متوالی هنگام تلاش برای خواندن یک بایگانی معیوب به limit. با یک limit مثبت، pax تلاش خواهد کرد از یک خطای خواندن بایگانی بازیابی شود و پردازش را از فایل بعدی ذخیره‌شده در بایگانی ادامه دهد. مقدار limit برابر با ۰ باعث می‌شود pax پس از شناسایی اولین خطای خواندن در یک جلد بایگانی، عملیات را متوقف کند. مقدار پیش‌فرض limit یک عدد مثبت کوچک از تلاش‌های مجدد است.
archive
مشخص کردن archive به عنوان نام‌مسیر بایگانی ورودی یا خروجی، که بر ورودی استاندارد پیش‌فرض (برای فهرست و خواندن) یا خروجی استاندارد پیش‌فرض (برای نوشتن) تقدم دارد. یک بایگانی واحد می‌تواند در چندین فایل و دستگاه‌های بایگانی مختلف گسترش یابد. در صورت نیاز، pax نام‌مسیر فایل یا دستگاهِ جلد بعدی در بایگانی را درخواست خواهد کرد.
group
انتخاب یک فایل بر اساس نام group آن، یا در صورت شروع با # ، بر اساس یک GID عددی. یک ‘\’ می‌تواند برای گریز دادن (escape) # استفاده شود. می‌توان چندین گزینهٔ -G ارائه داد و بررسی با اولین تطابق متوقف می‌شود.
تنها دنبال کردن پیوندهای نمادینِ خط فرمان در حین انجام یک پیمایش فیزیکی سیستم‌فایل.
تغییر نام تعاملی فایل‌ها یا اعضای بایگانی. برای هر عضو بایگانی که با یک عملوند pattern تطابق دارد یا هر فایلی که با یک عملوند file تطابق دارد، pax نام فایل، حالت فایل و زمان تغییر آن را در /dev/tty اعلان خواهد کرد. سپس pax یک خط را از /dev/tty می‌خواند. اگر این خط خالی باشد، از آن فایل یا عضو بایگانی صرف‌نظر می‌شود. اگر این خط تنها شامل یک نقطه باشد، فایل یا عضو بایگانی بدون هیچ تغییری در نام آن پردازش می‌شود. در غیر این صورت، نام آن با محتویات این خط جایگزین می‌گردد. اگر هنگام خواندن پاسخ با EOF مواجه شود یا /dev/tty نتواند برای خواندن و نوشتن باز شود، pax بلافاصله با وضعیت خروج غیرصفر خارج خواهد شد.
استفاده از ابزار xz برای فشرده‌سازی (از فشرده‌سازی خارج کردن) بایگانی در حین نوشتن (خواندن). ناسازگار با -a.
استفاده از ابزار bzip2 برای فشرده‌سازی (از فشرده‌سازی خارج کردن) بایگانی در حین نوشتن (خواندن). ناسازگار با -a.
عدم بازنویسی فایل‌های موجود.
دنبال کردن تمام پیوندهای نمادین برای انجام یک پیمایش منطقی سیستم‌فایل.
(حرف کوچک “ell”.) پیوند دادن فایل‌ها. در حالت رونوشت (-r -w -،) در صورت امکان بین سلسله‌مراتب فایل‌های مبدأ و مقصد پیوندهای سخت ایجاد می‌شود.
flag
پیکربندی نرمال‌ساز بایگانی. flag یا یک مقدار عددی سازگار با strtonum(3) است که مستقیماً در کلمهٔ پرچم‌ها ذخیره می‌شود، یا یکی از مقادیر زیر است که می‌توان به طور اختیاری پیشوند “no-” را برای غیرفعال کردن به آن‌ها اضافه کرد:
inodes
0x0001: سریال‌سازی اینودها، صفر کردن اطلاعات دستگاه.
(cpio, sv4cpio, sv4crc)
links
0x0002: ذخیرهٔ محتوای پیوندهای سخت تنها یک‌بار.
(cpio, sv4cpio, sv4crc)
mtime
0x0004: صفر کردن زمان تغییر فایل.
(ar, cpio, sv4cpio, sv4crc, ustar)
uidgid
0x0008: تنظیم مالک به 0:0 (root:wheel).
(ar, cpio, sv4cpio, sv4crc, ustar)
verb
0x0010: اشکال‌زدایی این گزینه.
debug
0x0020: اشکال‌زدایی ذخیره‌سازی سرآیند فایل.
lncp
0x0040: در صورت شکست ایجاد پیوند، استخراج پیوندهای سخت از طریق رونوشت.
numid
0x0080: استفاده تنها از مقادیر عددی uid و gid.
(ustar)
gslash
0x0100: الحاق یک ممیز اسلش پس از نام دایرکتوری‌ها.
(ustar)
set
0x0003: دست‌نخورده نگه داشتن مالکیت و mtime.
dist
0x008B: پاک‌سازی همه‌چیز به جز mtime.
norm
0x008F: پاک‌سازی همه‌چیز.
root
0x0089: پاک‌سازی اطلاعات مالک و دستگاه.

هنگام ایجاد یک بایگانی و فهرست‌کردن خروجی با جزئیات، این عملیات‌های نرمال‌سازی در خروجی منعکس نمی‌شوند، زیرا آن‌ها تنها پس از نمایش خروجی اعمال می‌گردند.

این گزینه تنها برای روال‌های نوشتن قالب‌های فایل ar ،cpio ،sv4cpio ،sv4crc و ustar پیاده‌سازی شده است.

TODO: واسط pax باید به جای آن از گزینهٔ -o برای مدیریت این ویژگی استفاده کند.

انتخاب اولین عضو بایگانی که با هر عملوند pattern تطابق دارد. برای هر pattern بیش از یک عضو بایگانی تطبیق داده نمی‌شود. هنگامی که اعضایی از نوع دایرکتوری تطبیق داده شوند، سلسله‌مراتب فایل با ریشه در آن دایرکتوری نیز تطبیق داده می‌شود (مگر اینکه -d نیز مشخص شده باشد).
اجبار بایگانی به تک‌جلدی بودن. اگر یک جلد زودتر از موعد به پایان برسد، pax درخواستی برای جلد جدید اعلان نخواهد کرد. این گزینه می‌تواند برای کارهای خودکاری که بازیابی خطا نمی‌تواند توسط انسان انجام شود، مفید باشد.
options
اطلاعاتی برای اصلاح الگوریتم استخراج یا نوشتن فایل‌های بایگانی که مختص قالب بایگانی مشخص‌شده توسط -x است. به طور کلی، options به این شکل است: name=value.

گزینه‌های زیر برای قالب‌های ustar و قالب قدیمی BSD tar در دسترس هستند:

هنگام نوشتن بایگانی‌ها، از ذخیره‌سازی دایرکتوری‌ها صرف‌نظر شود.
پیوندهای نمادین را دنبال نکند، یک پیمایش فیزیکی سیستم‌فایل را انجام دهد. این حالت پیش‌فرض است.
string
مشخص کردن یک یا چند گزینهٔ ویژگی‌های فایل (امتیازات). آرگومان گزینهٔ string رشته‌ای است که ویژگی‌های فایل را برای حفظ یا نادیده گرفته شدن در هنگام استخراج مشخص می‌کند. این رشته از نویسه‌های مشخصهٔ a ، e ، m ، o و p تشکیل شده است. چندین ویژگی می‌توانند در یک رشته به هم متصل شوند و چندین گزینهٔ -p می‌تواند مشخص شود. معانی نویسه‌های مشخصه به شرح زیر است:
زمان‌های دسترسی به فایل حفظ نشوند. به طور پیش‌فرض، زمان‌های دسترسی فایل تا حد امکان حفظ می‌شوند.
“حفظ همه‌چیز ،” شناسه کاربری، شناسه گروهی، بیت‌های حالت فایل، زمان دسترسی به فایل و زمان تغییر فایل. این گزینه برای استفاده توسط کاربر ریشه در نظر گرفته شده است، یعنی فردی با تمام امتیازات مناسب، تا تمام جنبه‌های فایل‌ها را همان‌گونه که در بایگانی ثبت شده‌اند حفظ کند. پرچم e مجموع پرچم‌های o و p است.
زمان‌های تغییر فایل حفظ نشوند. به طور پیش‌فرض، زمان‌های تغییر فایل تا حد امکان حفظ می‌شوند.
شناسه کاربری و شناسه گروهی حفظ شوند.
بیت‌های حالت فایل “حفظ شوند”. این گزینه برای استفاده توسط کاربری با امتیازات عادی در نظر گرفته شده است که می‌خواهد تمام جنبه‌های فایل به جز مالکیت را حفظ کند. زمان‌های فایل به طور پیش‌فرض حفظ می‌شوند، اما دو پرچم دیگر ارائه شده‌اند تا این رفتار را غیرفعال کرده و به جای آن از زمان استخراج استفاده کنند.

در فهرست بالا، ‘حفظ’ نشان می‌دهد ویژگی ذخیره‌شده در بایگانی، مشروط بر مجوزهای فرآیند فراخواننده، به فایل استخراج‌شده داده می‌شود. در غیر این صورت، ویژگی فایل استخراج‌شده به عنوان بخشی از اقدام معمول ایجاد فایل تعیین می‌شود. اگر هیچ‌یک از نویسه‌های مشخصهٔ e یا o مشخص نشده باشند، یا شناسه کاربری و شناسه گروهی به هر دلیلی حفظ نشوند، pax بیت‌های S_ISUID (setuid) و S_ISGID (setgid) حالت فایل را تنظیم نخواهد کرد. اگر حفظ هر یک از این موارد به هر دلیلی ناموفق باشد، pax یک پیام عیب‌یابی در خطای استاندارد می‌نویسد. شکست در حفظ این موارد بر وضعیت خروج نهایی تأثیر می‌گذارد، اما باعث حذف فایل استخراج‌شده نخواهد شد. اگر حروف مشخصهٔ فایل در هر یک از آرگومان‌های گزینه‌ایِ رشته‌ای تکراری بوده یا با یکدیگر در تضاد باشند، مواردی که در آخر ذکر شده‌اند تقدم خواهند داشت. به عنوان مثال، اگر -p eme مشخص شود، زمان‌های تغییر فایل همچنان حفظ می‌شوند.

خواندن یک فایل بایگانی از ورودی استاندارد و استخراج عملوندهای file مشخص‌شده. اگر برای استخراج یکی از اعضای بایگانی به دایرکتوری‌های میانی نیاز باشد، این دایرکتوری‌ها به گونه‌ای ایجاد می‌شوند که گویی mkdir(2) با OR بیتیِ S_IRWXU ، S_IRWXG و S_IRWXO به عنوان آرگومان حالت (mode) فراخوانی شده است. هنگامی که قالب بایگانیِ انتخاب‌شده از مشخص کردن فایل‌های پیوندخورده پشتیبانی کند و این فایل‌ها در حین استخراج بایگانی نتوانند پیوند داده شوند، pax یک پیام عیب‌یابی در خطای استاندارد نوشته و در پایان عملیات با وضعیت خروج غیرصفر خارج خواهد شد.
replstr
اصلاح نام‌های اعضای بایگانی بر اساس عبارت جایگزینی replstr ، با استفاده از نحو عبارات منظم ابزار ed(1). آرگومان‌های file یا pattern می‌توانند برای محدود کردن فهرست اعضای بایگانی به موارد مشخص‌شده تعیین شوند.

قالب این عبارات منظم به صورت زیر است:

/old/new/[gp]

همانند ed(1) ، old یک عبارت منظم پایه است (نگاه کنید به re_format(7)) و new می‌تواند شامل یک علامت امپرسند (‘& ،’) ارجاعات پس‌رو به صورت ‘\n’ (که در آن n یک رقم است)، یا تطابق زیرعبارت باشد. رشتهٔ old همچنین می‌تواند شامل نویسه‌های خط‌جدید باشد. هر نویسهٔ غیرتهی می‌تواند به عنوان جداکننده استفاده شود (در اینجا ‘/’ نشان داده شده است). می‌توان چندین عبارت -s را مشخص کرد. این عبارات به ترتیبی که در خط فرمان مشخص شده‌اند اعمال می‌شوند و با اولین جایگزینی موفق خاتمه می‌یابند.

پسوند اختیاری g اعمال عبارت جایگزینی را بر زیررشتهٔ نام‌مسیر، که با اولین نویسه پس از پایان آخرین جایگزینی موفق آغاز می‌شود، ادامه می‌دهد. اولین جایگزینی ناموفق عملیات گزینهٔ g را متوقف می‌کند. پسوند اختیاری p باعث می‌شود نتیجهٔ نهایی یک جایگزینی موفق با قالب زیر در خطای استاندارد نوشته شود:

نام‌های فایل یا اعضای بایگانی که با جایگزینی به یک رشتهٔ خالی تبدیل شوند، انتخاب نشده و نادیده گرفته خواهند شد.

range
امکان انتخاب فایل‌ها را بر اساس قرار گرفتن زمان تغییر فایل یا زمان تغییر اینود در محدودهٔ زمانی مشخص‌شده فراهم می‌کند. این محدوده دارای قالب زیر است:
[from_date][,to_date][/[c][m]]

تاریخ‌های مشخص‌شده از from_date تا to_date شامل خود آن زمان‌ها نیز هستند. اگر تنها from_date ارائه شود، تمام فایل‌هایی با زمان تغییر فایل یا زمان تغییر اینود برابر یا جدیدتر انتخاب می‌شوند. اگر تنها to_date ارائه شود، تمام فایل‌هایی با زمان تغییر فایل یا زمان تغییر اینود برابر یا قدیمی‌تر انتخاب خواهند شد. هنگامی که from_date برابر با to_date باشد، تنها فایل‌هایی با زمان تغییر یا زمان تغییر اینود دقیقاً برابر با آن زمان انتخاب خواهند شد.

هنگامی که pax در حالت نوشتن یا رونوشت است، فیلد انتهاییِ اختیاریِ [c][m] می‌تواند برای تعیین اینکه کدام زمان فایل (تغییر اینود، تغییر فایل یا هر دو) در مقایسه استفاده شود به کار رود. اگر هیچ‌کدام مشخص نشود، پیش‌فرض استفاده از زمان تغییر فایل به تنهایی است. m مقایسهٔ زمان تغییر فایل (زمانی که فایل آخرین بار نوشته شده است) را مشخص می‌کند. c مقایسهٔ زمان تغییر اینود (زمانی که اینود فایل آخرین بار تغییر کرده است؛ برای مثال، تغییر مالک، گروه، حالت و غیره) را مشخص می‌کند. هنگامی که هر دو c و m مشخص شده باشند، آنگاه هر دو زمان تغییر فایل و زمان تغییر اینود مقایسه می‌شوند.

مقایسهٔ زمان تغییر اینود در انتخاب فایل‌هایی مفید است که ویژگی‌های آن‌ها به تازگی تغییر کرده است، یا انتخاب فایل‌هایی که اخیراً ایجاد شده‌اند و زمان تغییر آن‌ها به زمانی قدیمی‌تر بازنشانی شده است (همان‌طور که هنگام استخراج یک فایل از یک بایگانی و حفظ زمان تغییر فایل رخ می‌دهد). مقایسه‌های زمانی با استفاده از هر دو زمان فایل هنگامی مفید است که pax برای ایجاد یک بایگانی افزایشی مبتنی بر زمان استفاده شود (تنها فایل‌هایی که در طول یک محدودهٔ زمانی مشخص تغییر کرده‌اند بایگانی خواهند شد).

یک محدودهٔ زمانی از شش فیلد مختلف تشکیل شده است و هر فیلد باید شامل دو رقم باشد. قالب آن به صورت زیر است:

[[[[[cc]yy]mm]dd]HH]MM[.SS]

که در آن cc دو رقم اول سال (قرن)، yy دو رقم آخر سال، اولین mm ماه (از 01 تا 12)، dd روزِ ماه (از 01 تا 31)، HH ساعتِ روز (از 00 تا 23)، MM دقیقه (از 00 تا 59)، و SS ثانیه (از 00 تا 59) است. فیلد دقیقه MM الزامی است، در حالی که فیلدهای دیگر اختیاری هستند و باید به ترتیب زیر اضافه شوند: HH ، dd ، mm ، yy ، cc.

فیلد SS می‌تواند مستقل از سایر فیلدها اضافه شود. محدوده‌های زمانی نسبت به زمان فعلی هستند، بنابراین -T 1234/cm تمام فایل‌هایی را انتخاب می‌کند که زمان تغییر یا تغییر اینود آن‌ها ساعت ۱۲:۳۴ بعدازظهر امروز یا دیرتر باشد. می‌توان چندین محدودهٔ زمانی -T ارائه داد و بررسی با اولین تطابق متوقف می‌شود.

بازنشانی زمان‌های دسترسی هر فایل یا دایرکتوریِ خوانده‌شده یا دسترسی‌یافته توسط pax به همان مقداری که قبل از خوانده‌شدن یا دسترسی‌یافتن توسط pax بودند.
user
انتخاب یک فایل بر اساس نام user آن، یا در صورت شروع با # ، یک UID عددی. یک ‘\’ می‌تواند برای گریز دادن # استفاده شود. می‌توان چندین گزینهٔ -U ارائه داد و بررسی با اولین تطابق متوقف می‌شود.
نادیده گرفتن فایل‌هایی که قدیمی‌تر (دارای زمان تغییر فایل نامتأخرتر) از یک فایل موجود قبلی یا عضو بایگانی با همان نام هستند. در طول خواندن، عضو بایگانی با همان نامِ یک فایل در سیستم‌فایل، در صورتی استخراج خواهد شد که عضو بایگانی جدیدتر از فایل باشد. در طول نوشتن، عضو سیستم‌فایل با همان نامِ یک عضو بایگانی، در صورتی در بایگانی نوشته خواهد شد که جدیدتر از عضو بایگانی باشد. در طول رونوشت، فایل موجود در سلسله‌مراتب مقصد با فایل موجود در سلسله‌مراتب مبدأ یا با پیوندی به فایل در سلسله‌مراتب مبدأ جایگزین می‌شود اگر فایل در سلسله‌مراتب مبدأ جدیدتر باشد.
در طول یک عملیات فهرست‌گیری، یک فهرست محتویات پرجزئیات با استفاده از قالب ابزار ls(1) همراه با گزینهٔ -l تولید می‌کند. برای نام‌مسیرهایی که نشان‌دهندهٔ یک پیوند سخت به عضوی قبلی از بایگانی هستند، خروجی قالب زیر را دارد:
ls -l listing == link-name

برای نام‌مسیرهایی که نشان‌دهندهٔ یک پیوند نمادین هستند، خروجی قالب زیر را دارد:

ls -l listing -> link-name

که در آن ls -l listing قالب خروجی مشخص‌شده توسط ابزار ls(1) هنگام استفاده با گزینهٔ -l است. در غیر این صورت برای تمام حالت‌های عملیاتی دیگر (خواندن، نوشتن و رونوشت)، به محض آغاز پردازش روی آن فایل یا عضو بایگانی، نام‌های مسیر بدون خط‌جدید انتهایی در خطای استاندارد نوشته شده و تخلیه (flush) می‌شوند. خط‌جدید انتهایی میان‌گیری نمی‌شود و تنها پس از خوانده شدن یا نوشته شدن فایل نوشته خواهد شد.

نوشتن فایل‌ها در خروجی استاندارد در قالب بایگانی مشخص‌شده. هنگامی که هیچ عملوند file مشخص نشده باشد، ورودی استاندارد برای دریافت فهرستی از نام‌های مسیر با یک مورد در هر خط و بدون هیچ‌گونه فاصلهٔ خالیِ ⟨blanks⟩ ابتدایی یا انتهایی خوانده می‌شود.
هنگام پیمایش سلسله‌مراتب فایل مشخص‌شده توسط یک نام‌مسیر، به دایرکتوری‌هایی با شناسهٔ دستگاه (device ID) متفاوت وارد نشود. برای اطلاعات بیشتر درباره شناسه‌های دستگاه، فیلد st_dev شرح داده شده در stat(2) را ببینید.
format
مشخص کردن قالب بایگانی خروجی، که قالب پیش‌فرض ustar است. pax در حال حاضر از قالب‌های زیر پشتیبانی می‌کند:
قالب کتابخانه‌ای بایگانی‌کننده یونیکس (Unix Archiver). این قالب با مخازن APT و مشخصات ar(1) در BSD مطابقت دارد، نه با GNU binutils (که البته می‌تواند آن‌ها را بخواند) یا سیستم‌های SYSV. برای اطلاعات بیشتر به ar(5) در برخی سیستم‌های عامل مراجعه کنید.
قالب باینری قدیمی cpio. اندازه بلوک پیش‌فرض برای این قالب ۵۱۲۰ بایت است. این قالب چندان همه‌کاره و سازگار نیست و در صورت در دسترس بودن سایر قالب‌ها نباید استفاده شود. اطلاعات اینود و دستگاه مربوط به یک فایل (که توسط این قالب برای شناسایی پیوندهای سخت فایل استفاده می‌شود)، که ممکن است توسط این قالب کوتاه (truncate) شود، توسط pax شناسایی شده و ترمیم می‌شود.
قالب تبادل cpio گسترش‌یافته مشخص‌شده در استاندارد IEEE Std 1003.2 (“POSIX.2”). اندازه بلوک پیش‌فرض برای این قالب ۵۱۲۰ بایت است. اطلاعات اینود و دستگاه یک فایل (که برای شناسایی پیوندهای سخت فایل توسط این قالب استفاده می‌شود)، که ممکن است توسط این قالب کوتاه شود، توسط pax شناسایی شده و ترمیم می‌شود.
قالب cpio مربوط به System V نسخهٔ ۴. اندازه بلوک پیش‌فرض برای این قالب ۵۱۲۰ بایت است. اطلاعات اینود و دستگاه یک فایل (که برای شناسایی پیوندهای سخت فایل توسط این قالب استفاده می‌شود)، که ممکن است توسط این قالب کوتاه شود، توسط pax شناسایی شده و ترمیم می‌شود.
قالب cpio مربوط به System V نسخهٔ ۴ با مجموع مقابله‌ای (checksum) از نوع CRC فایل. اندازه بلوک پیش‌فرض برای این قالب ۵۱۲۰ بایت است. اطلاعات اینود و دستگاه یک فایل (که برای شناسایی پیوندهای سخت فایل توسط این قالب استفاده می‌شود)، که ممکن است توسط این قالب کوتاه شود، توسط pax شناسایی شده و ترمیم می‌شود.
قالب قدیمی BSD tar همان‌طور که در 4.3BSD یافت می‌شد. اندازه بلوک پیش‌فرض برای این قالب ۱۰۲۴۰ بایت است. نام‌های مسیر ذخیره‌شده توسط این قالب باید دارای طول ۱۰۰ نویسه یا کمتر باشند. تنها فایل‌های معمولی، پیوندهای سخت، پیوندهای نمادین و دایرکتوری‌ها بایگانی خواهند شد (انواع دیگر سیستم‌فایل پشتیبانی نمی‌شوند). برای سازگاری پس‌رو با قالب‌های حتی قدیمی‌تر tar، هنگام نوشتن یک بایگانی می‌توان از گزینهٔ -o برای صرف‌نظر کردن از ذخیرهٔ دایرکتوری‌ها استفاده کرد. این گزینه به شکل زیر است:
-o write_opt=nodir
قالب تبادل tar گسترش‌یافته مشخص‌شده در استاندارد IEEE Std 1003.2 (“POSIX.2”). اندازه بلوک پیش‌فرض برای این قالب ۱۰۲۴۰ بایت است. نام‌های فایل ذخیره‌شده توسط این قالب باید طولی برابر با ۱۰۰ نویسه یا کمتر داشته باشند؛ کل نام‌مسیر باید ۲۵۶ نویسه یا کمتر باشد.

pax هر فایلی را که در نتیجهٔ محدودیت‌های خاص قالب بایگانی نتواند ذخیره یا استخراج کند، شناسایی و گزارش خواهد کرد. قالب‌های بایگانی مجزا ممکن است محدودیت‌های بیشتری بر استفاده اعمال کنند. محدودیت‌های معمول قالب بایگانی شامل این موارد است (اما محدود به آن‌ها نیست): طول نام‌مسیر فایل، اندازه فایل، طول نام‌مسیر پیوند، و نوع فایل.

این گزینه همانند گزینهٔ -D است، با این تفاوت که زمان تغییر اینود با استفاده از نام‌مسیر ایجادشده پس از تکمیل تمام تغییرات نام فایل بررسی می‌شود.
این گزینه همانند گزینهٔ -u است، با این تفاوت که زمان تغییر محتوا با استفاده از نام‌مسیر ایجادشده پس از تکمیل تمام تغییرات نام فایل بررسی می‌شود.
استفاده از ابزار gzip(1) برای فشرده‌سازی (از فشرده‌سازی خارج کردن) بایگانی در حین نوشتن (خواندن). ناسازگار با -a.

گزینه‌هایی که بر روی نام فایل‌ها یا اعضای بایگانی عمل می‌کنند (-c -، -i -، -n -، -s -، -u -، -v -، -D -، -G -، -T -، -U -، -Y و -Z) به صورت زیر با یکدیگر تعامل دارند:

هنگام استخراج فایل‌ها در طول عملیات خواندن، اعضای بایگانی تنها بر اساس عملوندهای الگوی مشخص‌شده توسط کاربر که توسط گزینه‌های -c -، -n -، -u -، -D -، -G -، -T -، -U اصلاح شده‌اند، ‘انتخاب’ می‌شوند. سپس هر گزینهٔ -s و -i به همان ترتیب، نام‌های این فایل‌های انتخاب‌شده را تغییر می‌دهند. سپس گزینه‌های -Y و -Z بر اساس نام‌مسیر نهایی اعمال خواهند شد. در نهایت، گزینهٔ -v نام‌های حاصل از این تغییرات را خواهد نوشت.

هنگام بایگانی کردن فایل‌ها در طول عملیات نوشتن، یا رونوشت فایل‌ها در طول عملیات رونوشت، اعضای بایگانی تنها بر اساس نام‌های مسیر مشخص‌شده توسط کاربر که توسط گزینه‌های -n -، -u -، -D -، -G -، -T و -U اصلاح شده‌اند، ‘انتخاب’ می‌شوند (گزینهٔ -D فقط در طول عملیات رونوشت اعمال می‌شود). سپس هر گزینهٔ -s و -i به همان ترتیب، نام‌های این فایل‌های انتخاب‌شده را تغییر می‌دهند. سپس در طول یک عملیات رونوشت، گزینه‌های -Y و -Z بر اساس نام‌مسیر نهایی اعمال خواهند شد. در نهایت، گزینهٔ -v نام‌های حاصل از این تغییرات را خواهد نوشت.

هنگامی که یک یا هر دو گزینهٔ -u یا -D همراه با گزینهٔ -n مشخص شوند، یک فایل در نظر گرفته نمی‌شود انتخاب شده مگر اینکه از فایلی که با آن مقایسه می‌شود تازه‌تر باشد.

مسیری که فایل‌های موقت در آن ذخیره می‌شوند.

The pax utility exits 0 on success, and >0 if an error occurs.

رونوشت محتویات دایرکتوری فعلی در دستگاه /dev/rst0:

$ pax -w -f /dev/rst0 .

ارائهٔ فهرست تفصیلی محتویات برای یک بایگانی ذخیره‌شده در filename:

$ pax -v -f filename

این دنباله از دستورات، کل سلسله‌مراتب دایرکتوری olddir را در newdir رونوشت می‌کند:

$ mkdir newdir
$ cd olddir
$ pax -rw . ../newdir

استخراج فایل‌ها از بایگانی a.pax. فایل‌های ریشه‌گرفته در /usr نسبت به دایرکتوری کاری فعلی استخراج می‌شوند؛ تمام فایل‌های دیگر در مسیر تغییرنیافته‌شان استخراج می‌شوند.

$ pax -r -s ,^/usr/,, -f a.pax

این دستور می‌تواند برای انتخاب تعاملی فایل‌ها جهت رونوشت از دایرکتوری فعلی به dest_dir استفاده شود:

$ pax -rw -i . dest_dir

استخراج تمام فایل‌ها از بایگانی a.pax که متعلق به مالک با گروه هستند و حفظ تمامی مجوزهای فایل:

$ pax -r -pe -U root -G bin -f a.pax

به‌روزرسانی (و فهرست کردن) تنها آن دسته از فایل‌های موجود در دایرکتوری مقصد /backup که قدیمی‌تر هستند (زمان تغییر اینود یا زمان تغییر فایل نامتأخرتری دارند) نسبت به فایل‌های با همان نام یافت‌شده در درخت فایل مبدأ home:

$ pax -r -w -v -Y -Z home /backup

هر زمان که pax هنگام خواندن یک بایگانی نتواند یک فایل یا پیوند ایجاد کند، یا هنگام نوشتن یک بایگانی نتواند فایلی را پیدا کند، یا هنگام تعیین گزینهٔ -p نتواند شناسه کاربری، شناسه گروهی یا حالت فایل را حفظ کند، یک پیام تشخیصی در خطای استاندارد نوشته می‌شود و یک وضعیت خروج غیرصفر بازگردانده خواهد شد، اما پردازش ادامه می‌یابد. در حالتی که pax نتواند پیوندی به یک فایل ایجاد کند، مگر اینکه -M lncp داده شده باشد، pax نسخهٔ دومی از فایل ایجاد نخواهد کرد.

اگر استخراج یک فایل از یک بایگانی پیش از موعد توسط یک سیگنال یا خطا خاتمه یابد، ممکن است pax تنها بخشی از فایلی را که کاربر می‌خواسته استخراج کرده باشد. علاوه بر این، حالت فایل‌های استخراج‌شده و دایرکتوری‌ها ممکن است بیت‌های فایل نادرستی داشته باشند، و زمان‌های تغییر و دسترسی ممکن است اشتباه باشند.

اگر ایجاد یک بایگانی پیش از موعد توسط یک سیگنال یا خطا خاتمه یابد، ممکن است pax تنها بخشی از بایگانی را ایجاد کرده باشد که ممکن است مشخصات قالب بایگانی مربوطه را نقض کند.

اگر در حین انجام عملیات رونوشت، pax تشخیص دهد که فایلی در شرف بازنویسی روی خودش است، فایل رونوشت نمی‌شود، یک پیام تشخیصی در خطای استاندارد نوشته می‌شود و هنگامی که pax پایان یابد با وضعیت خروج غیرصفر خارج خواهد شد.

ar(1), cpio(1), deb(5), paxcpio(1), paxtar(1), tar(1)

ابزار pax بیشتر با نسخهٔ قدیمی‌تر مشخصات IEEE Std 1003.1 (“POSIX”) سازگار است، به جز موارد فهرست‌شده در گزارش باگ‌ها (BUGS) در زیر، و این‌که قالب بایگانی pax و کلیدواژهٔ listopt پشتیبانی نمی‌شوند.

پرچم‌های -0BDEGHJjLMOPTUYZz -، قالب‌های بایگانی ar ، bcpio ، sv4cpio ، sv4crc و tar ، افزوده‌های b ، k و x به پرچم -b و مدیریت بایگانی‌های ناقص در طول عملیات‌های فهرست‌گیری و خواندن، الحاقاتی بر آن مشخصات هستند.

یک ابزار pax در 4.4BSD ظاهر شد.

Keith Muller در دانشگاه کالیفرنیا، سن دیگو. توسعه‌های MirBSD توسط mirabilos ⟨m@mirbsd.org⟩.

تطبیق الگو با هیچ‌یک از POSIX یا این مستندات به طور کامل مطابقت ندارد. همچنین استانداردها (STANDARDS) در بالا را ببینید.

$Mdocdate: January 5 MirBSD