| PAX(1) | General Commands Manual | PAX(1) |
نام (NAME)
pax —
خواندن و
نوشتن
بایگانیهای
فایل و
رونوشت
سلسلهمراتب
دایرکتوریها
خلاصه دستور (SYNOPSIS)
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
توضیحات (DESCRIPTION)
pax
اعضای یک
فایل
بایگانی را
میخواند،
مینویسد و
فهرست
میکند و
سلسلهمراتب
دایرکتوریها
را رونوشت
مینماید.
عملکرد pax
مستقل از
قالب
بایگانی
خاص است و از
طیف
گستردهای
از
قالبهای
مختلف
بایگانی
پشتیبانی
میکند.
فهرستی از
قالبهای
بایگانی
پشتیبانیشده
را میتوان
در توضیحات
مربوط به
گزینهٔ -x
یافت.
وجود
گزینههای
-r و -w
مشخص
میکند که
pax در
کدامیک از
حالتهای
عملکردی
زیر کار
خواهد کرد:
list
(فهرست)،
read
(خواندن)،
write
(نوشتن)، و
copy
(رونوشت).
- ⟨none⟩
- List.
paxیک فهرست محتویات از اعضای فایل بایگانی خواندهشده از ورودی استاندارد را که ناممسیر آنها با آرگومانهای pattern مشخصشده تطابق دارد، در خروجی استاندارد مینویسد. فهرست محتویات شامل یک نام فایل در هر خط بوده و با استفاده از میانگیر تکخطی نوشته میشود. -r- Read.
paxاعضای فایل بایگانی خواندهشده از ورودی استاندارد را که ناممسیر آنها با آرگومانهای pattern مشخصشده تطابق دارد، استخراج میکند. قالب بایگانی و بلوکبندی به طور خودکار در ورودی تعیین میشود. هنگامی که یک فایل استخراجشده یک دایرکتوری باشد، کل سلسلهمراتب فایل با ریشه در آن دایرکتوری استخراج میشود. همهٔ فایلهای استخراجشده نسبت به سلسلهمراتب فایل فعلی ایجاد میشوند. تنظیم مالکیت، زمانهای دسترسی و تغییر، و حالت فایل برای فایلهای استخراجشده در توضیحات مربوط به گزینهٔ-pبا جزئیات بیشتر بررسی شده است. -w- Write.
paxبایگانیای حاوی عملوندهای file را با استفاده از قالب بایگانی مشخصشده در خروجی استاندارد مینویسد. هنگامی که هیچ عملوند file مشخص نشده باشد، فهرستی از فایلها برای رونوشت با یک مورد در هر خط از ورودی استاندارد خوانده میشود. هنگامی که یک عملوند file یک دایرکتوری نیز باشد، کل سلسلهمراتب فایل با ریشه در آن دایرکتوری گنجانده خواهد شد. -rw- Copy.
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
را در یک
پیام
عیبیابی
در خطای
استاندارد
مینویسد و
سپس با
وضعیت خروج
غیرصفر
خارج
میشود.
گزینهها به شرح زیر هستند:
-0- استفاده از
نویسهٔ NUL
(‘
\0’) به عنوان پایاندهندهٔ ناممسیر، به جای خطجدید (‘\n’). این مورد فقط بر نامهای مسیر خواندهشده از ورودی استاندارد در حالتهای نوشتن و رونوشت، و بر نامهای مسیر نوشتهشده در خروجی استاندارد در حالت فهرست اعمال میشود. انتظار میرود این گزینه در هماهنگی با تابع-print0در find(1) ، گزینهٔ-dfile ... در دستور توکارreadاز mksh(1) یا پرچم-0در xargs(1) استفاده شود. -a- الحاق
عملوندهای
file
دادهشده
به انتهای
بایگانیای
که قبلاً
نوشته شده
است. اگر
قالب
بایگانی با
گزینهٔ
-xمشخص نشده باشد، قالبی که در حال حاضر در بایگانی استفاده میشود انتخاب خواهد شد. هر تلاشی برای الحاق به یک بایگانی با قالبی متفاوت از قالب استفادهشده در آن بایگانی باعث میشودpaxبلافاصله با وضعیت خروج غیرصفر خارج شود. اندازه بلوکبندی استفادهشده در جلد بایگانی که نوشتن از آنجا شروع میشود، برای ادامهٔ آن جلد بایگانی به کار خواهد رفت.هشدار: بسیاری از دستگاههای ذخیرهسازی قادر به پشتیبانی از عملیات لازم برای انجام عملیات الحاق نیستند. هر تلاشی برای الحاق به یک بایگانی ذخیرهشده روی چنین دستگاهی ممکن است به بایگانی آسیب رسانده یا نتایج غیرقابل پیشبینی دیگری در پی داشته باشد. به طور خاص درایوهای نوار احتمال بیشتری دارد که از عملیات الحاق پشتیبانی نکنند. یک بایگانی ذخیرهشده در یک فایل معمولی سیستمفایل یا روی یک دستگاه دیسک معمولاً از عملیات الحاق پشتیبانی خواهد کرد.
-Bbytes- محدود کردن
تعداد
بایتهای
نوشتهشده
در یک جلد
بایگانی به
bytes. حد bytes
میتواند
با ‘
m ،’ ‘k’ یا ‘b’ خاتمه یابد تا به ترتیب ضرب در ۱۰۴۸۵۷۶ (1M)، ۱۰۲۴ (1K) یا ۵۱۲ را مشخص کند. یک جفت از حدود bytes میتواند با ‘x’ از هم جدا شود تا حاصلضرب را نشان دهد.هشدار: تنها زمانی از این گزینه استفاده کنید که بایگانی را در دستگاهی مینویسید که از شرایط خواندن پایان فایل (end of file) بر اساس آخرین (یا بزرگترین) آفست نوشتن پشتیبانی میکند (مانند یک فایل معمولی یا درایو نوار). استفاده از این گزینه با فلاپی یا دیسک سخت توصیه نمیشود.
-bblocksize- هنگام
نوشتن یک
بایگانی،
خروجی را در
یک عدد صحیح
اعشاری
مثبت از
بایتها در
هر نوشتن در
فایل
بایگانی
بلوکبندی
میکند.
blocksize باید
مضربی از
۵۱۲ بایت با
حداکثر
۶۴۵۱۲ بایت
باشد.
اندازه
بلوکهای
بایگانی
بزرگتر از
۳۲۲۵۶ بایت
ناقض
استاندارد
POSIX بوده و در
همه
سیستمها
سازگار و
قابل حمل
نخواهند
بود. یک blocksize
میتواند
به ‘
k’ یا ‘b’ ختم شود تا به ترتیب ضرب در ۱۰۲۴ (1K) یا ۵۱۲ را مشخص کند. یک جفت از مقادیر blocksize میتواند با ‘x’ از هم جدا شود تا یک حاصلضرب را نشان دهد. یک دستگاه بایگانی خاص ممکن است محدودیتهای بیشتری را بر اندازهٔ بلوکبندی مورد پشتیبانی خود اعمال کند. هنگامی که بلوکبندی مشخص نشده باشد، blocksize پیشفرض به قالب بایگانی خاص مورد استفاده بستگی دارد (گزینهٔ-xرا ببینید). -c- تطبیق تمام فایلها یا اعضای بایگانی به جز موارد مشخصشده توسط عملوندهای pattern و file.
-D- این گزینه
همانند
گزینهٔ
-uاست، با این تفاوت که به جای زمان تغییر محتوای فایل، زمان تغییر اینود فایل بررسی میشود. زمان تغییر اینود فایل میتواند برای انتخاب فایلهایی استفاده شود که اطلاعات اینود آنها (مانند UID، GID و غیره) جدیدتر از رونوشت فایل در directory مقصد است. -d- باعث میشود فایلهایی از نوع دایرکتوری که رونوشت گرفته یا بایگانی میشوند، یا اعضای بایگانی از نوع دایرکتوری که استخراج میشوند، تنها با فایل یا عضو بایگانی دایرکتوری تطابق یابند و نه با سلسلهمراتب فایلی که در آن دایرکتوری ریشه دارد.
-Elimit- محدود کردن
تعداد
خطاهای
خواندن
متوالی
هنگام تلاش
برای
خواندن یک
بایگانی
معیوب به
limit. با یک
limit مثبت،
paxتلاش خواهد کرد از یک خطای خواندن بایگانی بازیابی شود و پردازش را از فایل بعدی ذخیرهشده در بایگانی ادامه دهد. مقدار limit برابر با ۰ باعث میشودpaxپس از شناسایی اولین خطای خواندن در یک جلد بایگانی، عملیات را متوقف کند. مقدار پیشفرض limit یک عدد مثبت کوچک از تلاشهای مجدد است. -farchive- مشخص کردن
archive به
عنوان
ناممسیر
بایگانی
ورودی یا
خروجی، که
بر ورودی
استاندارد
پیشفرض
(برای فهرست
و خواندن)
یا خروجی
استاندارد
پیشفرض
(برای
نوشتن) تقدم
دارد. یک
بایگانی
واحد
میتواند
در چندین
فایل و
دستگاههای
بایگانی
مختلف
گسترش یابد.
در صورت
نیاز،
paxناممسیر فایل یا دستگاهِ جلد بعدی در بایگانی را درخواست خواهد کرد. -Ggroup- انتخاب یک
فایل بر
اساس نام
group آن، یا
در صورت
شروع با
# ،بر اساس یک GID عددی. یک ‘\’ میتواند برای گریز دادن (escape)#استفاده شود. میتوان چندین گزینهٔ-Gارائه داد و بررسی با اولین تطابق متوقف میشود. -H- تنها دنبال کردن پیوندهای نمادینِ خط فرمان در حین انجام یک پیمایش فیزیکی سیستمفایل.
-i- تغییر نام
تعاملی
فایلها یا
اعضای
بایگانی.
برای هر عضو
بایگانی که
با یک
عملوند
pattern تطابق
دارد یا هر
فایلی که با
یک عملوند
file تطابق
دارد،
paxنام فایل، حالت فایل و زمان تغییر آن را در /dev/tty اعلان خواهد کرد. سپسpaxیک خط را از /dev/tty میخواند. اگر این خط خالی باشد، از آن فایل یا عضو بایگانی صرفنظر میشود. اگر این خط تنها شامل یک نقطه باشد، فایل یا عضو بایگانی بدون هیچ تغییری در نام آن پردازش میشود. در غیر این صورت، نام آن با محتویات این خط جایگزین میگردد. اگر هنگام خواندن پاسخ باEOFمواجه شود یا /dev/tty نتواند برای خواندن و نوشتن باز شود،paxبلافاصله با وضعیت خروج غیرصفر خارج خواهد شد. -J- استفاده از
ابزار xz
برای
فشردهسازی
(از
فشردهسازی
خارج کردن)
بایگانی در
حین نوشتن
(خواندن).
ناسازگار
با
-a. -j- استفاده از
ابزار bzip2
برای
فشردهسازی
(از
فشردهسازی
خارج کردن)
بایگانی در
حین نوشتن
(خواندن).
ناسازگار
با
-a. -k- عدم بازنویسی فایلهای موجود.
-L- دنبال کردن تمام پیوندهای نمادین برای انجام یک پیمایش منطقی سیستمفایل.
-l- (حرف کوچک
“ell”.) پیوند
دادن
فایلها. در
حالت
رونوشت
(
-r-w-،) در صورت امکان بین سلسلهمراتب فایلهای مبدأ و مقصد پیوندهای سخت ایجاد میشود. -Mflag- پیکربندی
نرمالساز
بایگانی.
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برای مدیریت این ویژگی استفاده کند. -n- انتخاب
اولین عضو
بایگانی که
با هر
عملوند
pattern تطابق
دارد. برای
هر pattern بیش
از یک عضو
بایگانی
تطبیق داده
نمیشود.
هنگامی که
اعضایی از
نوع
دایرکتوری
تطبیق داده
شوند،
سلسلهمراتب
فایل با
ریشه در آن
دایرکتوری
نیز تطبیق
داده
میشود (مگر
اینکه
-dنیز مشخص شده باشد). -O- اجبار
بایگانی به
تکجلدی
بودن. اگر
یک جلد
زودتر از
موعد به
پایان
برسد،
paxدرخواستی برای جلد جدید اعلان نخواهد کرد. این گزینه میتواند برای کارهای خودکاری که بازیابی خطا نمیتواند توسط انسان انجام شود، مفید باشد. -ooptions- اطلاعاتی
برای اصلاح
الگوریتم
استخراج یا
نوشتن
فایلهای
بایگانی که
مختص قالب
بایگانی
مشخصشده
توسط
-xاست. به طور کلی، options به این شکل است: name=value.گزینههای زیر برای قالبهای
ustarو قالب قدیمی BSDtarدر دسترس هستند:write_opt=nodir- هنگام نوشتن بایگانیها، از ذخیرهسازی دایرکتوریها صرفنظر شود.
-P- پیوندهای نمادین را دنبال نکند، یک پیمایش فیزیکی سیستمفایل را انجام دهد. این حالت پیشفرض است.
-pstring- مشخص کردن
یک یا چند
گزینهٔ
ویژگیهای
فایل
(امتیازات).
آرگومان
گزینهٔ
string
رشتهای
است که
ویژگیهای
فایل را
برای حفظ یا
نادیده
گرفته شدن
در هنگام
استخراج
مشخص
میکند. این
رشته از
نویسههای
مشخصهٔ
a ، e ، m ، oوpتشکیل شده است. چندین ویژگی میتوانند در یک رشته به هم متصل شوند و چندین گزینهٔ-pمیتواند مشخص شود. معانی نویسههای مشخصه به شرح زیر است:a- زمانهای دسترسی به فایل حفظ نشوند. به طور پیشفرض، زمانهای دسترسی فایل تا حد امکان حفظ میشوند.
e- “حفظ
همهچیز
،” شناسه
کاربری،
شناسه
گروهی،
بیتهای
حالت
فایل،
زمان
دسترسی به
فایل و
زمان
تغییر
فایل. این
گزینه
برای
استفاده
توسط
کاربر
ریشه در
نظر گرفته
شده است،
یعنی فردی
با تمام
امتیازات
مناسب، تا
تمام
جنبههای
فایلها
را
همانگونه
که در
بایگانی
ثبت
شدهاند
حفظ کند.
پرچم
eمجموع پرچمهایoوpاست. m- زمانهای تغییر فایل حفظ نشوند. به طور پیشفرض، زمانهای تغییر فایل تا حد امکان حفظ میشوند.
o- شناسه کاربری و شناسه گروهی حفظ شوند.
p- بیتهای حالت فایل “حفظ شوند”. این گزینه برای استفاده توسط کاربری با امتیازات عادی در نظر گرفته شده است که میخواهد تمام جنبههای فایل به جز مالکیت را حفظ کند. زمانهای فایل به طور پیشفرض حفظ میشوند، اما دو پرچم دیگر ارائه شدهاند تا این رفتار را غیرفعال کرده و به جای آن از زمان استخراج استفاده کنند.
در فهرست بالا، ‘حفظ’ نشان میدهد ویژگی ذخیرهشده در بایگانی، مشروط بر مجوزهای فرآیند فراخواننده، به فایل استخراجشده داده میشود. در غیر این صورت، ویژگی فایل استخراجشده به عنوان بخشی از اقدام معمول ایجاد فایل تعیین میشود. اگر هیچیک از نویسههای مشخصهٔ
eیاoمشخص نشده باشند، یا شناسه کاربری و شناسه گروهی به هر دلیلی حفظ نشوند،paxبیتهایS_ISUID(setuid) وS_ISGID(setgid) حالت فایل را تنظیم نخواهد کرد. اگر حفظ هر یک از این موارد به هر دلیلی ناموفق باشد،paxیک پیام عیبیابی در خطای استاندارد مینویسد. شکست در حفظ این موارد بر وضعیت خروج نهایی تأثیر میگذارد، اما باعث حذف فایل استخراجشده نخواهد شد. اگر حروف مشخصهٔ فایل در هر یک از آرگومانهای گزینهایِ رشتهای تکراری بوده یا با یکدیگر در تضاد باشند، مواردی که در آخر ذکر شدهاند تقدم خواهند داشت. به عنوان مثال، اگر-peme مشخص شود، زمانهای تغییر فایل همچنان حفظ میشوند. -r- خواندن یک
فایل
بایگانی از
ورودی
استاندارد
و استخراج
عملوندهای
file
مشخصشده.
اگر برای
استخراج
یکی از
اعضای
بایگانی به
دایرکتوریهای
میانی نیاز
باشد، این
دایرکتوریها
به گونهای
ایجاد
میشوند که
گویی
mkdir(2) با OR
بیتیِ
S_IRWXU ، S_IRWXGوS_IRWXOبه عنوان آرگومان حالت (mode) فراخوانی شده است. هنگامی که قالب بایگانیِ انتخابشده از مشخص کردن فایلهای پیوندخورده پشتیبانی کند و این فایلها در حین استخراج بایگانی نتوانند پیوند داده شوند،paxیک پیام عیبیابی در خطای استاندارد نوشته و در پایان عملیات با وضعیت خروج غیرصفر خارج خواهد شد. -sreplstr- اصلاح
نامهای
اعضای
بایگانی بر
اساس عبارت
جایگزینی
replstr ، با
استفاده از
نحو عبارات
منظم ابزار
ed(1).
آرگومانهای
file یا pattern
میتوانند
برای محدود
کردن فهرست
اعضای
بایگانی به
موارد
مشخصشده
تعیین شوند.
قالب این عبارات منظم به صورت زیر است:
/old/new/[gp]همانند ed(1) ، old یک عبارت منظم پایه است (نگاه کنید به re_format(7)) و new میتواند شامل یک علامت امپرسند (‘
& ،’) ارجاعات پسرو به صورت ‘\n’ (که در آن n یک رقم است)، یا تطابق زیرعبارت باشد. رشتهٔ old همچنین میتواند شامل نویسههای خطجدید باشد. هر نویسهٔ غیرتهی میتواند به عنوان جداکننده استفاده شود (در اینجا ‘/’ نشان داده شده است). میتوان چندین عبارت-sرا مشخص کرد. این عبارات به ترتیبی که در خط فرمان مشخص شدهاند اعمال میشوند و با اولین جایگزینی موفق خاتمه مییابند.پسوند اختیاری
gاعمال عبارت جایگزینی را بر زیررشتهٔ ناممسیر، که با اولین نویسه پس از پایان آخرین جایگزینی موفق آغاز میشود، ادامه میدهد. اولین جایگزینی ناموفق عملیات گزینهٔgرا متوقف میکند. پسوند اختیاریpباعث میشود نتیجهٔ نهایی یک جایگزینی موفق با قالب زیر در خطای استاندارد نوشته شود:نامهای فایل یا اعضای بایگانی که با جایگزینی به یک رشتهٔ خالی تبدیل شوند، انتخاب نشده و نادیده گرفته خواهند شد.
-Trange- امکان
انتخاب
فایلها را
بر اساس
قرار گرفتن
زمان تغییر
فایل یا
زمان تغییر
اینود در
محدودهٔ
زمانی
مشخصشده
فراهم
میکند. این
محدوده
دارای قالب
زیر است:
[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ارائه داد و بررسی با اولین تطابق متوقف میشود. -t- بازنشانی
زمانهای
دسترسی هر
فایل یا
دایرکتوریِ
خواندهشده
یا
دسترسییافته
توسط
paxبه همان مقداری که قبل از خواندهشدن یا دسترسییافتن توسطpaxبودند. -Uuser- انتخاب یک
فایل بر
اساس نام
user آن، یا
در صورت
شروع با
# ،یک UID عددی. یک ‘\’ میتواند برای گریز دادن#استفاده شود. میتوان چندین گزینهٔ-Uارائه داد و بررسی با اولین تطابق متوقف میشود. -u- نادیده گرفتن فایلهایی که قدیمیتر (دارای زمان تغییر فایل نامتأخرتر) از یک فایل موجود قبلی یا عضو بایگانی با همان نام هستند. در طول خواندن، عضو بایگانی با همان نامِ یک فایل در سیستمفایل، در صورتی استخراج خواهد شد که عضو بایگانی جدیدتر از فایل باشد. در طول نوشتن، عضو سیستمفایل با همان نامِ یک عضو بایگانی، در صورتی در بایگانی نوشته خواهد شد که جدیدتر از عضو بایگانی باشد. در طول رونوشت، فایل موجود در سلسلهمراتب مقصد با فایل موجود در سلسلهمراتب مبدأ یا با پیوندی به فایل در سلسلهمراتب مبدأ جایگزین میشود اگر فایل در سلسلهمراتب مبدأ جدیدتر باشد.
-v- در طول یک
عملیات
فهرستگیری،
یک فهرست
محتویات
پرجزئیات
با استفاده
از قالب
ابزار
ls(1)
همراه با
گزینهٔ
-lتولید میکند. برای ناممسیرهایی که نشاندهندهٔ یک پیوند سخت به عضوی قبلی از بایگانی هستند، خروجی قالب زیر را دارد:ls -l listing == link-nameبرای ناممسیرهایی که نشاندهندهٔ یک پیوند نمادین هستند، خروجی قالب زیر را دارد:
ls -l listing -> link-nameکه در آن ls -l listing قالب خروجی مشخصشده توسط ابزار ls(1) هنگام استفاده با گزینهٔ
-lاست. در غیر این صورت برای تمام حالتهای عملیاتی دیگر (خواندن، نوشتن و رونوشت)، به محض آغاز پردازش روی آن فایل یا عضو بایگانی، نامهای مسیر بدون خطجدید انتهایی در خطای استاندارد نوشته شده و تخلیه (flush) میشوند. خطجدید انتهایی میانگیری نمیشود و تنها پس از خوانده شدن یا نوشته شدن فایل نوشته خواهد شد. -w- نوشتن فایلها در خروجی استاندارد در قالب بایگانی مشخصشده. هنگامی که هیچ عملوند file مشخص نشده باشد، ورودی استاندارد برای دریافت فهرستی از نامهای مسیر با یک مورد در هر خط و بدون هیچگونه فاصلهٔ خالیِ ⟨blanks⟩ ابتدایی یا انتهایی خوانده میشود.
-X- هنگام
پیمایش
سلسلهمراتب
فایل
مشخصشده
توسط یک
ناممسیر،
به
دایرکتوریهایی
با شناسهٔ
دستگاه (device ID)
متفاوت
وارد نشود.
برای
اطلاعات
بیشتر
درباره
شناسههای
دستگاه،
فیلد
st_devشرح داده شده در stat(2) را ببینید. -xformat- مشخص کردن
قالب
بایگانی
خروجی، که
قالب
پیشفرض
ustarاست.paxدر حال حاضر از قالبهای زیر پشتیبانی میکند:ar- قالب کتابخانهای بایگانیکننده یونیکس (Unix Archiver). این قالب با مخازن APT و مشخصات ar(1) در BSD مطابقت دارد، نه با GNU binutils (که البته میتواند آنها را بخواند) یا سیستمهای SYSV. برای اطلاعات بیشتر به ar(5) در برخی سیستمهای عامل مراجعه کنید.
bcpio- قالب
باینری
قدیمی cpio.
اندازه
بلوک
پیشفرض
برای این
قالب ۵۱۲۰
بایت است.
این قالب
چندان
همهکاره
و سازگار
نیست و در
صورت در
دسترس
بودن سایر
قالبها
نباید
استفاده
شود.
اطلاعات
اینود و
دستگاه
مربوط به
یک فایل (که
توسط این
قالب برای
شناسایی
پیوندهای
سخت فایل
استفاده
میشود)،
که ممکن
است توسط
این قالب
کوتاه (truncate)
شود، توسط
paxشناسایی شده و ترمیم میشود. cpio- قالب
تبادل cpio
گسترشیافته
مشخصشده
در
استاندارد
IEEE Std 1003.2 (“POSIX.2”).
اندازه
بلوک
پیشفرض
برای این
قالب ۵۱۲۰
بایت است.
اطلاعات
اینود و
دستگاه یک
فایل (که
برای
شناسایی
پیوندهای
سخت فایل
توسط این
قالب
استفاده
میشود)،
که ممکن
است توسط
این قالب
کوتاه
شود، توسط
paxشناسایی شده و ترمیم میشود. sv4cpio- قالب cpio
مربوط به System V
نسخهٔ ۴.
اندازه
بلوک
پیشفرض
برای این
قالب ۵۱۲۰
بایت است.
اطلاعات
اینود و
دستگاه یک
فایل (که
برای
شناسایی
پیوندهای
سخت فایل
توسط این
قالب
استفاده
میشود)،
که ممکن
است توسط
این قالب
کوتاه
شود، توسط
paxشناسایی شده و ترمیم میشود. sv4crc- قالب cpio
مربوط به System V
نسخهٔ ۴ با
مجموع
مقابلهای
(checksum) از نوع CRC
فایل.
اندازه
بلوک
پیشفرض
برای این
قالب ۵۱۲۰
بایت است.
اطلاعات
اینود و
دستگاه یک
فایل (که
برای
شناسایی
پیوندهای
سخت فایل
توسط این
قالب
استفاده
میشود)،
که ممکن
است توسط
این قالب
کوتاه
شود، توسط
paxشناسایی شده و ترمیم میشود. tar- قالب
قدیمی BSD
tar همانطور
که در 4.3BSD
یافت
میشد.
اندازه
بلوک
پیشفرض
برای این
قالب
۱۰۲۴۰
بایت است.
نامهای
مسیر
ذخیرهشده
توسط این
قالب باید
دارای طول
۱۰۰ نویسه
یا کمتر
باشند.
تنها
فایلهای
معمولی،
پیوندهای
سخت،
پیوندهای
نمادین و
دایرکتوریها
بایگانی
خواهند شد
(انواع
دیگر
سیستمفایل
پشتیبانی
نمیشوند).
برای
سازگاری
پسرو با
قالبهای
حتی
قدیمیتر
tar، هنگام
نوشتن یک
بایگانی
میتوان
از گزینهٔ
-oبرای صرفنظر کردن از ذخیرهٔ دایرکتوریها استفاده کرد. این گزینه به شکل زیر است:-owrite_opt=nodir ustar- قالب تبادل tar گسترشیافته مشخصشده در استاندارد IEEE Std 1003.2 (“POSIX.2”). اندازه بلوک پیشفرض برای این قالب ۱۰۲۴۰ بایت است. نامهای فایل ذخیرهشده توسط این قالب باید طولی برابر با ۱۰۰ نویسه یا کمتر داشته باشند؛ کل ناممسیر باید ۲۵۶ نویسه یا کمتر باشد.
paxهر فایلی را که در نتیجهٔ محدودیتهای خاص قالب بایگانی نتواند ذخیره یا استخراج کند، شناسایی و گزارش خواهد کرد. قالبهای بایگانی مجزا ممکن است محدودیتهای بیشتری بر استفاده اعمال کنند. محدودیتهای معمول قالب بایگانی شامل این موارد است (اما محدود به آنها نیست): طول ناممسیر فایل، اندازه فایل، طول ناممسیر پیوند، و نوع فایل. -Y- این گزینه
همانند
گزینهٔ
-Dاست، با این تفاوت که زمان تغییر اینود با استفاده از ناممسیر ایجادشده پس از تکمیل تمام تغییرات نام فایل بررسی میشود. -Z- این گزینه
همانند
گزینهٔ
-uاست، با این تفاوت که زمان تغییر محتوا با استفاده از ناممسیر ایجادشده پس از تکمیل تمام تغییرات نام فایل بررسی میشود. -z- استفاده از
ابزار
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
مشخص شوند،
یک فایل در
نظر گرفته
نمیشود
انتخاب شده
مگر اینکه
از فایلی که
با آن
مقایسه
میشود
تازهتر
باشد.
محیط (ENVIRONMENT)
TMPDIR- مسیری که فایلهای موقت در آن ذخیره میشوند.
وضعیت خروج (EXIT STATUS)
The pax utility exits 0 on success,
and >0 if an error occurs.
مثالها (EXAMPLES)
رونوشت محتویات دایرکتوری فعلی در دستگاه /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 که متعلق به مالک root با گروه bin هستند و حفظ تمامی مجوزهای فایل:
$ pax -r -pe -U root -G bin -f
a.paxبهروزرسانی (و فهرست کردن) تنها آن دسته از فایلهای موجود در دایرکتوری مقصد /backup که قدیمیتر هستند (زمان تغییر اینود یا زمان تغییر فایل نامتأخرتری دارند) نسبت به فایلهای با همان نام یافتشده در درخت فایل مبدأ home:
$ pax -r -w -v -Y -Z home
/backupخطاها (DIAGNOSTICS)
هر زمان که
pax هنگام
خواندن یک
بایگانی
نتواند یک
فایل یا
پیوند
ایجاد کند،
یا هنگام
نوشتن یک
بایگانی
نتواند
فایلی را
پیدا کند،
یا هنگام
تعیین
گزینهٔ -p
نتواند
شناسه
کاربری،
شناسه
گروهی یا
حالت فایل
را حفظ کند،
یک پیام
تشخیصی در
خطای
استاندارد
نوشته
میشود و یک
وضعیت خروج
غیرصفر
بازگردانده
خواهد شد،
اما پردازش
ادامه
مییابد. در
حالتی که
pax نتواند
پیوندی به
یک فایل
ایجاد کند،
مگر اینکه
-M lncp
داده شده
باشد، pax
نسخهٔ دومی
از فایل
ایجاد
نخواهد
کرد.
اگر
استخراج یک
فایل از یک
بایگانی
پیش از موعد
توسط یک
سیگنال یا
خطا خاتمه
یابد، ممکن
است pax
تنها بخشی
از فایلی را
که کاربر
میخواسته
استخراج
کرده باشد.
علاوه بر
این، حالت
فایلهای
استخراجشده
و
دایرکتوریها
ممکن است
بیتهای
فایل
نادرستی
داشته
باشند، و
زمانهای
تغییر و
دسترسی
ممکن است
اشتباه
باشند.
اگر ایجاد
یک بایگانی
پیش از موعد
توسط یک
سیگنال یا
خطا خاتمه
یابد، ممکن
است pax
تنها بخشی
از بایگانی
را ایجاد
کرده باشد
که ممکن است
مشخصات
قالب
بایگانی
مربوطه را
نقض کند.
اگر در حین
انجام
عملیات
رونوشت،
pax تشخیص
دهد که
فایلی در
شرف
بازنویسی
روی خودش
است، فایل
رونوشت
نمیشود،
یک پیام
تشخیصی در
خطای
استاندارد
نوشته
میشود و
هنگامی که
pax پایان
یابد با
وضعیت خروج
غیرصفر
خارج خواهد
شد.
همچنین ببینید (SEE ALSO)
استانداردها (STANDARDS)
ابزار
pax بیشتر
با نسخهٔ
قدیمیتر
مشخصات IEEE Std 1003.1
(“POSIX”) سازگار
است، به جز
موارد
فهرستشده
در
گزارش
باگها (BUGS) در
زیر، و
اینکه
قالب
بایگانی
pax و
کلیدواژهٔ
listopt
پشتیبانی
نمیشوند.
پرچمهای
-0BDEGHJjLMOPTUYZz -،
قالبهای
بایگانی ar
، bcpio ،
sv4cpio ، sv4crc
و tar ،
افزودههای
b ، k و x
به پرچم -b
و مدیریت
بایگانیهای
ناقص در طول
عملیاتهای
فهرستگیری
و خواندن،
الحاقاتی
بر آن
مشخصات
هستند.
تاریخچه (HISTORY)
یک ابزار
pax در 4.4BSD
ظاهر شد.
نویسندگان (AUTHORS)
Keith Muller در دانشگاه کالیفرنیا، سن دیگو. توسعههای MirBSD توسط mirabilos ⟨m@mirbsd.org⟩.
گزارش باگها (BUGS)
تطبیق الگو با هیچیک از POSIX یا این مستندات به طور کامل مطابقت ندارد. همچنین استانداردها (STANDARDS) در بالا را ببینید.
| $Mdocdate: January 5 | MirBSD |