.nr g 2 .\" $MirOS: src/bin/pax/tar.1,v 1.49 2024/01/05 02:08:49 tg Exp $ .\" $OpenBSD: tar.1,v 1.61 2018/07/23 19:02:49 kn Exp $ .\" .\" Copyright © 2005, 2008, 2009, 2011, 2012, 2014, 2016, .\" 2017, 2018, 2019, 2020, 2021 .\" mirabilos .\" Copyright (c) 1996 SigmaSoft, Th. Lockert .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\"- .\" $miros: contrib/samples/portmdoc,v 1.23 2024/01/04 22:52:50 tg Exp $ .\"- .\" Copyright © 2008, 2009, 2010, 2016, 2018, 2020, 2023 .\" mirabilos .\" .\" Glue GNU groff (BSD and GNU mdoc both) to AT&T nroff (UCB mdoc). .\" * ` generates ‘ in gnroff, so use \` .\" * ' generates ’ in gnroff, \' generates ´, so use \*(aq .\" * - generates ‐ in gnroff, \- generates −, so .tr it to - .\" thus use - for hyphens and \- for minus signs and option dashes .\" * ~ is size-reduced and placed atop in groff, so use \*(TI .\" * ^ is size-reduced and placed atop in groff, so use \*(ha .\" * \(en does not work in nroff, so use \*(en for a solo en dash .\" * and \*(EM for a correctly spaced em dash .\" * <>| are problematic, so redefine and use \*(Lt\*(Gt\*(Ba .\" Also make sure to use \& *before* a punctuation char that is to not .\" be interpreted as punctuation, and especially with two-letter words .\" but also (after) a period that does not end a sentence (“e.g.\&”). .\"- .\" .\" Implement .Dd with the Mdocdate RCS keyword .\" .rn Dd xD .de Dd .ie \\$1 $Mdocdate: \{\ . xD \\$2 \\$3, \\$4 .\} .el .xD \\$1 \\$2 \\$3 .. .\" .\" .Dd must come before most everything, because when called .\" with -mandoc it loads -mdoc via .so in .Dd (first macro). .\" .Dd $Mdocdate: January 5 2024 $ .\" .\" Check which macro package we use, and do other -mdoc setup. .\" .ie \n(.g \{\ . if n .ss \n[.ss] 0 . if \*[.T] ascii .tr \-\N'45' . if \*[.T] latin1 .tr \-\N'45' . if \*[.T] utf8 .tr \-\N'45' . if \*[.T] utf8 .tr \(la\*(Lt . if \*[.T] utf8 .tr \(ra\*(Gt . ds <= \(<= . ds >= \(>= . ds Rq \(rq . ds Lq \(lq . ds sL \(aq . ds sR \(aq . if \*[.T] utf8 .ds sL ` . if \*[.T] ps .ds sL ` . if \*[.T] utf8 .ds sR ' . if \*[.T] ps .ds sR ' . ds aq \(aq . ds TI \(ti . ds ha \(ha . ds en \(en . ie d volume-ds-1 .ds tT gnu . el .ie d doc-volume-ds-1 .ds tT gnp . el .ds tT bsd .\} .el \{\ . ds aq ' . ds TI ~ . ds ha ^ . ds en \(em . ds tT ucb .\} .ie n \{\ . ds EM \ \(em\ \& .\} .el \{\ . ds EM \f(TR\|\(em\|\fP .\} .\" .\" Add UCB mdoc compatibility to GNU mdoc .\" Implement .Mx (MirBSD) .\" .ie "\*(tT"gnu" \{\ . ds sP \s0 . ds tN \*[Tn-font-size] . eo . de Mx . nr curr-font \n[.f] . nr curr-size \n[.ps] . ds str-Mx \f[\n[curr-font]]\s[\n[curr-size]u] . ds str-Mx1 \*(tN\%MirBSD\*[str-Mx] . if !\n[arg-limit] \ . if \n[.$] \{\ . ds macro-name Mx . parse-args \$@ . \} . if (\n[arg-limit] > \n[arg-ptr]) \{\ . nr arg-ptr +1 . ie (\n[type\n[arg-ptr]] == 2) \ . ds str-Mx1 \*(tN\%MirBSD\~#\*[arg\n[arg-ptr]]\*[str-Mx] . el \ . nr arg-ptr -1 . \} . ds arg\n[arg-ptr] "\*[str-Mx1] . nr type\n[arg-ptr] 2 . ds space\n[arg-ptr] "\*[space] . nr num-args (\n[arg-limit] - \n[arg-ptr]) . nr arg-limit \n[arg-ptr] . if \n[num-args] \ . parse-space-vector . print-recursive .. . de Aq . if !\n[arg-limit] \ . ds macro-name Aq . ie \n[in-authors-section] \{\ . ds quote-left \*(Lt . ds quote-right \*(Gt . \} . el \{\ . ds quote-left \[la] . ds quote-right \[ra] . \} . enclose-string \$@ .. . ec .\} .el .ie "\*(tT"gnp" \{\ . ds sP \s0 . ie t .ds tN \s[(\n[.ps]u-1z)] . el .ds tN . eo . de Mx . nr doc-curr-font \n[.f] . nr doc-curr-size \n[.ps] . ds doc-str-Mx \f[\n[doc-curr-font]]\s[\n[doc-curr-size]u] . ds doc-str-Mx1 \*(tN\%MirBSD\*[doc-str-Mx] . if !\n[doc-arg-limit] \ . if \n[.$] \{\ . ds doc-macro-name Mx . doc-parse-args \$@ . \} . if (\n[doc-arg-limit] > \n[doc-arg-ptr]) \{\ . nr doc-arg-ptr +1 . ie (\n[doc-type\n[doc-arg-ptr]] == 2) \ . ds doc-str-Mx1 \*(tN\%MirBSD\~#\*[doc-arg\n[doc-arg-ptr]]\*[doc-str-Mx] . el \ . nr doc-arg-ptr -1 . \} . ds doc-arg\n[doc-arg-ptr] "\*[doc-str-Mx1] . nr doc-type\n[doc-arg-ptr] 2 . ds doc-space\n[doc-arg-ptr] "\*[doc-space] . nr doc-num-args (\n[doc-arg-limit] - \n[doc-arg-ptr]) . nr doc-arg-limit \n[doc-arg-ptr] . if \n[doc-num-args] \ . doc-parse-space-vector . doc-print-recursive .. . ec .\} .el \{\ . de Mx . nr cF \\n(.f . nr cZ \\n(.s . ds aa \&\f\\n(cF\s\\n(cZ . if \\n(aC==0 \{\ . ie \\n(.$==0 \&\\*(tNMirBSD\\*(aa . el .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 . \} . if \\n(aC>\\n(aP \{\ . nr aP \\n(aP+1 . ie \\n(C\\n(aP==2 \{\ . nr xX 0 . nr xX 1+\\*(A\\n(aP . as b1 \&\\*(tNMirBSD\ \& . if \\n(xX>0 .as b1 #\& . as b1 \&\\*(A\\n(aP\\*(aa . rr xX . ie \\n(aC>\\n(aP \{\ . nr aP \\n(aP+1 . nR . \} . el .aZ . \} . el \{\ . as b1 \&\\*(tNMirBSD\\*(aa . nR . \} . \} .. .\} .\" .\"- .ie \ng==1 \{\ . ds nc mircpio . ds np mirpax . ds nt mirtar . ds nm mirtar . Dt MIRTAR 1 .\} .el .ie \ng==2 \{\ . ds nc paxcpio . ds np pax . ds nt paxtar . ds nm paxtar . Dt PAXTAR 1 .\} .el \{\ . ds nc cpio . ds np pax . ds nt tar . ds nm tar . Dt TAR 1 .\} .\"- .Os MirBSD .Sh "نام (NAME)" .ie \ng==1 \{\ .Nm mirtar .Nd ابزار آرشیو و بایگانی فایل‌ها .\} .el .ie \ng==2 \{\ .Nm paxtar .Nd ابزار آرشیو و بایگانی فایل‌ها .\} .el \{\ .Nm tar .Nd ابزار آرشیو و بایگانی فایل‌ها .\} .Sh "خلاصه دستور (SYNOPSIS)" .Nm \*(nm .Sm off .No { Cm crtux No } Op Cm 014578abefHhJjLmOoPpqsvwXZz .Sm on .Op Ar blocking-factor \*(Ba archive \*(Ba replstr .Op Fl C Ar directory .Op Fl I Ar file .Op Ar .Pp .Nm \*(nm .No { Ns Fl crtux Ns } .Bk -words .Op Fl 014578aeHhJjLmOoPpqvwXZz .Op Fl b Ar blocking-factor .Op Fl C Ar directory .Op Fl D Ar format-options .Op Fl f Ar archive .Op Fl I Ar file .Op Fl M Ar flag .Op Fl s Ar replstr .Op Ar .Ek .Sh "توضیحات (DESCRIPTION)" دستور .Nm پرونده‌های بایگانی را در قالب .Dq tar .Pq دقیق‌تر بگوییم، قالب Cm ustar ایجاد می‌کند، فایل‌هایی را به آن می‌افزاید، یا فایل‌ها را از آن استخراج می‌نماید. یک بایگانی tar اغلب بر روی یک نوار مغناطیسی ذخیره می‌شود، اما می‌تواند به همان خوبی بر روی فلاپی دیسک، CD-ROM یا در یک پرونده معمولی دیسک نیز ذخیره گردد. .Pp در شکل اول (سنتی یا قدیمی)، تمام گزینه‌ها به جز .Fl C و .Fl I باید درون نخستین آرگومان .Nm قرار گیرند و نباید با خط تیره .Pq Sq \-\& آغاز شوند. آرگومان‌های گزینه‌ها (در صورت وجود) به عنوان شناسه‌های بعدی به .Nm داده می‌شوند و به همان ترتیبی که گزینه‌های متناظر آن‌ها در خط فرمان قرار گرفته‌اند، پردازش خواهند شد. .Pp در شکل دوم (که ترجیح داده می‌شود)، گزینه‌ها می‌توانند به هر ترتیبی مشخص شوند و مقادیر آرگومان‌های متناظر بلافاصله پس از آن‌ها می‌آیند. .Pp یکی از گزینه‌های زیر باید حتماً مشخص شود: .Bl -tag -width Ds .It Fl c ایجاد یک بایگانی جدید، یا بازنویسی روی بایگانی موجود، و افزودن فایل‌های مشخص‌شده به آن. .It Fl r افزودن فایل‌های جدید نام‌برده به انتهای بایگانی موجود. توجه داشته باشید که این عمل تنها بر روی رسانه‌هایی کار می‌کند که بتوان علامت پایان فایل (end-of-file) را در آن‌ها بازنویسی کرد. .It Fl t فهرست کردن محتویات بایگانی. اگر فایلی در خط فرمان مشخص شده باشد، تنها همان فایل‌ها فهرست خواهند شد. آرگومان‌های .Ar file می‌توانند به عنوان الگوهای تطبیق مسیر (glob) مشخص شوند (برای اطلاعات بیشتر به .Xr glob 7 مراجعه کنید)؛ در این صورت .Nm تمام اعضای بایگانی را که با هر الگو مطابقت دارند فهرست می‌کند. .It Fl u نام مستعار برای گزینه .Fl r . .It Fl x استخراج فایل‌ها از بایگانی. اگر فایلی در خط فرمان مشخص شده باشد، تنها همان فایل‌ها از بایگانی استخراج خواهند شد. آرگومان‌های .Ar file می‌توانند به عنوان الگوهای تطبیق مسیر (glob) مشخص شوند (برای اطلاعات بیشتر به .Xr glob 7 مراجعه کنید)؛ در این صورت .Nm تمام اعضای بایگانی را که با هر الگو تطابق دارند استخراج خواهد کرد. .Pp اگر بیش از یک رونوشت از یک پرونده در بایگانی وجود داشته باشد، در حین استخراج رونوشت‌های بعدی بر روی رونوشت‌های قبلی بازنویسی می‌شوند. حالت دسترسی (file mode) و زمان آخرین تغییر فایل در صورت امکان حفظ می‌شوند. حالت دسترسی فایل ممکن است توسط .Xr umask 2 تغییر یابد. .El .Pp علاوه بر گزینه‌های ذکرشده در بالا، هر یک از گزینه‌های زیر نیز می‌توانند استفاده شوند: .Bl -tag -width Ds .It Fl a حدس زدن ابزار فشرده‌سازی بر اساس نام پرونده بایگانی. ناتوانی در حدس زدن منجر به عدم استفاده از هیچ فشرده‌سازی بدون نمایش هشدار خواهد شد. این گزینه صرفاً برای سازگاری نسبی با .Tn GNU .Nm tar وجود دارد؛ اکیداً توصیه می‌شود به جای آن، خروجی را در stdout بایگانی کرده و از طریق لوله (pipe) به یک ابزار فشرده‌سازی خارجی با آرگومان‌های مناسب ارسال کنید: .Pp .Dl tar \-cf \- foo \*(Ba xz \-2e \*(Gtfoo.txz .It Fl b Ar blocking-factor تنظیم ضریب بلوک‌بندی (blocking factor) مورد استفاده برای بایگانی. .Nm از بلوک‌های ۵۱۲ بایتی استفاده می‌کند. مقدار پیش‌فرض ۲۰ و بیشینه آن ۱۲۶ است. بایگانی‌هایی با ضریب بلوک‌بندی بزرگتر از ۶۳ استاندارد .Tn POSIX را نقض می‌کنند و در همه سیستم‌ها قابل‌حمل نخواهند بود. .It Fl C Ar directory یک آرگومان موضعی است که دایرکتوری کاری را برای فایل‌های پس از خود تعیین می‌کند. هنگام استخراج، فایل‌ها در دایرکتوری مشخص‌شده استخراج خواهند شد؛ هنگام ایجاد، فایل‌های مشخص‌شده از آن دایرکتوری انتخاب می‌شوند. .It Fl D Ar format-options مشخص کردن قالب بایگانی و گزینه‌های قالب، که با کاما از هم جدا می‌شوند. .Nm در حال حاضر از قالب‌ها و گزینه‌های زیر پشتیبانی می‌کند: .Bl -tag -width "sv4cpio" .It Cm ar قالب کتابخانه بایگانی‌کننده یونیکس (Unix Archiver). این قالب با مخازن APT و مشخصات .Xr ar 1 در BSD مطابقت دارد، نه با GNU binutils (که البته می‌تواند آن‌ها را بخواند) یا سیستم‌های SYSV. برای اطلاعات بیشتر به .Xr ar 5 در برخی سیستم‌های عامل مراجعه کنید. .It Cm bcpio قالب قدیمی باینری cpio. اندازه بلوک پیش‌فرض برای این قالب ۵۱۲۰ بایت است. این قالب قابلیت حمل پایینی دارد و زمانی که قالب‌های دیگر در دسترس هستند نباید استفاده شود. اطلاعات Inode و دستگاه یک فایل (که توسط این قالب برای تشخیص پیوندهای سخت فایل استفاده می‌شود) که ممکن است توسط این قالب کوتاه شود، توسط .Nm تشخیص داده شده و ترمیم می‌گردد. .It Cm cpio قالب مبادله گسترش‌یافته cpio که در استاندارد .St -p1003.2 تعیین شده است. اندازه بلوک پیش‌فرض برای این قالب ۵۱۲۰ بایت است. اطلاعات Inode و دستگاه یک فایل (که توسط این قالب برای تشخیص پیوندهای سخت فایل استفاده می‌شود) که ممکن است توسط این قالب کوتاه شود، توسط .Nm تشخیص داده شده و ترمیم می‌گردد. .It Cm sv4cpio قالب System V نسخه ۴ cpio. اندازه بلوک پیش‌فرض برای این قالب ۵۱۲۰ بایت است. اطلاعات Inode و دستگاه یک فایل (که توسط این قالب برای تشخیص پیوندهای سخت فایل استفاده می‌شود) که ممکن است توسط این قالب کوتاه شود، توسط .Nm تشخیص داده شده و ترمیم می‌گردد. .It Cm sv4crc قالب System V نسخه ۴ cpio به همراه چکسام CRC برای فایل‌ها. اندازه بلوک پیش‌فرض برای این قالب ۵۱۲۰ بایت است. اطلاعات Inode و دستگاه یک فایل (که توسط این قالب برای تشخیص پیوندهای سخت فایل استفاده می‌شود) که ممکن است توسط این قالب کوتاه شود، توسط .Nm تشخیص داده شده و ترمیم می‌گردد. .It Cm tar قالب قدیمی .Bx tar همان‌طور که در .Bx 4.3 موجود بود. اندازه بلوک پیش‌فرض برای این قالب ۱۰۲۴۰ بایت است. طول مسیرهای پرونده ذخیره‌شده در این قالب باید ۱۰۰ کاراکتر یا کمتر باشد. تنها فایل‌های معمولی، پیوندهای سخت، پیوندهای نمادین و دایرکتوری‌ها بایگانی خواهند شد (انواع دیگر فایل‌سیستم پشتیبانی نمی‌شوند). .Pp برای سازگاری با قالب‌های حتی قدیمی‌تر tar، می‌توان هنگام نوشتن بایگانی از گزینه .Cm write_opt=nodir برای صرف‌نظر کردن از ذخیره دایرکتوری‌ها استفاده کرد. .It Cm ustar قالب مبادله گسترش‌یافته tar مشخص‌شده در استاندارد .St -p1003.2 . اندازه بلوک پیش‌فرض برای این قالب ۱۰۲۴۰ بایت است. نام فایل‌های ذخیره‌شده در این قالب باید ۱۰۰ کاراکتر یا کمتر باشد؛ کل مسیر فایل باید ۲۵۶ کاراکتر یا کمتر باشد. .El .Pp دستور .Nm هر فایلی را که به دلیل محدودیت‌های خاص قالب بایگانی نتواند ذخیره یا استخراج کند، تشخیص داده و گزارش می‌دهد. قالب‌های مختلف بایگانی ممکن است محدودیت‌های بیشتری در استفاده اعمال کنند. محدودیت‌های رایج قالب بایگانی شامل این موارد است (اما محدود به آن‌ها نیست): طول مسیر فایل، اندازه فایل، طول مسیر پیوند، و نوع فایل. .It Fl e توقف بلافاصله پس از اولین خطا. .It Fl f Ar archive نام پرونده‌ای که بایگانی در آن ذخیره می‌شود. مقدار پیش‌فرض .Pa /dev/rst0 است. اگر روی خط تیره .Pq Sq \-\& تنظیم شود، از خروجی استاندارد استفاده خواهد شد. همچنین به متغیر محیطی .Ev TAPE مراجعه کنید. .It Fl H تنها پیوندهای نمادینی که در خط فرمان داده شده‌اند دنبال شوند. .It Fl h دنبال کردن پیوندهای نمادین به گونه‌ای که گویی فایل‌ها یا دایرکتوری‌های عادی هستند. در حالت استخراج، این بدان معناست که یک مدخل دایرکتوری در بایگانی، پیوند نمادین موجود را بازنویسی نخواهد کرد، بلکه بر روی هدفی که پیوند در نهایت به آن اشاره می‌کند بازنویسی خواهد شد. .It Fl I Ar file یک آرگومان موضعی است که نام فایل‌ها برای بایگانی یا استخراج را از فایل مشخص‌شده می‌خواند، در هر خط یک نام. .It Fl J استفاده از ابزار xz برای فشرده‌سازی بایگانی. .It Fl j استفاده از ابزار bzip2 برای فشرده‌سازی بایگانی. .It Fl L مترادف برای گزینه .Fl h . .It Fl M Ar flag پیکربندی نرمال‌ساز (نرمالایزر) بایگانی. .Ar flag یا یک مقدار عددی سازگار با .Xr strtonum 3 است که مستقیماً در کلمه فلگ‌ها ذخیره می‌شود، یا یکی از مقادیر زیر است که می‌توان پیشوند .Dq no\- را برای خاموش کردن آن‌ها به ابتدایشان افزود: .Pp .Bl -tag -width xxxxxx -compact .It Ar inodes 0x0001: سریال‌سازی اینودها و صفر کردن اطلاعات دستگاه. .br (cpio, sv4cpio, sv4crc) .It Ar links 0x0002: ذخیره محتوای پیوندهای سخت فقط برای یک بار. .br (cpio, sv4cpio, sv4crc) .It Ar mtime 0x0004: صفر کردن زمان تغییر فایل (mtime). .br (ar, cpio, sv4cpio, sv4crc, ustar) .It Ar uidgid 0x0008: تنظیم مالک به 0:0 .Pq Li root Ns : Ns Li wheel . .br (ar, cpio, sv4cpio, sv4crc, ustar) .It Ar verb 0x0010: اشکال‌زدایی این گزینه. .It Ar debug 0x0020: اشکال‌زدایی ذخیره‌سازی هدر فایل. .It Ar lncp 0x0040: استخراج پیوندهای سخت با کپی کردن در صورت شکست پیوند. .It Ar numid 0x0080: استفاده انحصاری از مقادیر عددی برای uid و gid. .br (ustar) .It Ar gslash 0x0100: افزودن یک اسلش پس از نام دایرکتوری‌ها. .br (ustar) .It Ar set 0x0003: دست‌نخورده نگه داشتن مالکیت و mtime. .It Ar dist 0x008B: پاک‌سازی همه‌چیز به جز mtime. .It Ar norm 0x008F: پاک‌سازی تمام موارد. .It Ar root 0x0089: پاک‌سازی اطلاعات مالک و دستگاه. .El .Pp هنگام ایجاد یک بایگانی و فهرست کردن خروجی با جزئیات (verbose)، این عملیات‌های نرمال‌سازی در خروجی منعکس نمی‌شوند، زیرا تنها پس از نمایش خروجی اعمال می‌گردند. .Pp این گزینه تنها برای روال‌های نوشتن قالب‌های فایلی ar، cpio، sv4cpio، sv4crc و ustar پیاده‌سازی شده است. .It Fl m زمان تغییر فایل (mtime) حفظ نشود. .It Fl O هنگام خواندن، استخراج فایل‌ها در خروجی استاندارد انجام شود. .br هنگام نوشتن، نوشتن بایگانی‌ها به سبک قدیمی (غیر POSIX). .It Fl o هنگام نوشتن، نوشتن بایگانی‌ها به سبک قدیمی (غیر POSIX). .br اطلاعات دایرکتوری که نسخه قدیمی (V7) ابزار .Nm tar قادر به رمزگشایی آن نیست نوشته نشود. همانند .Fl D Ar tar,write_opt=nodir . .It Fl P به دلایل امنیتی، .Nm به‌طور پیش‌فرض از مسیرهای حاوی اجزای دونقطه .Pq Dq ..\& صرف‌نظر کرده و اسلش‌های ابتدایی .Pq Sq / را از مسیرها حذف می‌کند؛ این گزینه آن رفتار را غیرفعال می‌سازد. .It Fl p حفظ شناسه کاربر و گروه و همچنین حالت دسترسی فایل صرف‌نظر از مقدار فعلی .Xr umask 2 . بیت‌های setuid و setgid تنها در صورتی حفظ می‌شوند که امکان حفظ شناسه کاربر و گروه وجود داشته باشد. تنها در ترکیب با گزینه .Fl x معنا دارد. .It Fl q انتخاب نخستین عضو بایگانی که با هر عملوند .Ar file تطابق دارد. برای هر .Ar file بیش از یک عضو بایگانی تطبیق داده نمی‌شود. هنگامی که اعضایی از نوع دایرکتوری مطابقت داده شوند، سلسله‌مراتب فایل‌های ریشه‌گرفته از آن دایرکتوری نیز تطبیق داده می‌شود. .It Fl s Ar replstr تغییر نام اعضای بایگانی بر اساس عبارت جایگزینی .Ar replstr ، با استفاده از نحو عبارات باقاعده ابزار .Xr ed 1 . می‌توان آرگومان‌های .Ar file را برای محدود کردن فهرست اعضای بایگانی به موارد مشخص‌شده تعیین کرد. .Pp قالب این عبارات باقاعده به صورت زیر است: .Pp .Dl /old/new/[gp] .Pp همانند ابزار .Xr ed 1 ، مقدار .Va old یک عبارت باقاعده پایه است (به .Xr re_format 7 مراجعه کنید) و .Va new می‌تواند شامل کاراکتر امپرسند .Pq Ql & ، مراجع بازگشتی .Ql \e Ns Em n (که در آن .Em n یک رقم است)، یا تطبیق زیرعبارت باشد. رشته .Va old همچنین می‌تواند شامل کاراکترهای خط جدید (newline) باشد. از هر کاراکتر غیر تهی می‌توان به عنوان جداکننده استفاده کرد .Po در اینجا .Ql / نمایش داده شده است .Pc . می‌توان چندین عبارت .Fl s را مشخص نمود. عبارت‌ها به همان ترتیبی که در خط فرمان مشخص شده‌اند اعمال می‌شوند و با اولین جایگزینی موفق پایان می‌یابند. .Pp نویسه اختیاری .Cm g در انتها، به اعمال عبارت جایگزینی بر روی زیررشته ادامه می‌دهد، که از نخستین کاراکتر پس از پایان آخرین جایگزینی موفق آغاز می‌شود. اولین جایگزینی ناموفق عملکرد گزینه .Cm g را متوقف می‌کند. نویسه اختیاری .Cm p در انتها، باعث می‌شود که نتیجه نهایی یک جایگزینی موفق در قالب زیر در خروجی استاندارد خطا نوشته شود: .Pp .D1 Em original-pathname No \*(Gt\*(Gt Em new-pathname .Pp نام‌های پرونده یا اعضای بایگانی که پس از جایگزینی به یک رشته خالی تبدیل شوند، انتخاب نشده و نادیده گرفته خواهند شد. .It Fl v حالت عملیات پرجزئیات (Verbose). اگر گزینه .Fl v چندین بار مشخص شود یا گزینه .Fl t نیز همراه آن ذکر گردد، .Nm از یک قالب طولانی برای فهرست کردن فایل‌ها مشابه .Xr ls 1 .Fl l استفاده خواهد کرد. .It Fl w تغییر نام تعاملی فایل‌ها. این گزینه باعث می‌شود که .Nm هنگام ذخیره‌سازی یا استخراج فایل‌ها در بایگانی، نام فایل مورد استفاده را از کاربر بپرسد. .It Fl X از نقاط پیوند (mount points) در سیستم‌فایل عبور نکند. .It Fl Z استفاده از ابزار .Xr compress 1 برای فشرده‌سازی بایگانی. .It Fl z استفاده از ابزار .Xr gzip 1 برای فشرده‌سازی بایگانی. .El .Pp گزینه‌های .Op Fl 014578 می‌توانند برای انتخاب یکی از دستگاه‌های پشتیبان کامپایل‌شده داخلی، .Pa /dev/rstN استفاده شوند. .Sh "محیط (ENVIRONMENT)" .Bl -tag -width Fl .It Ev TMPDIR مسیر مورد استفاده برای ذخیره‌سازی پرونده‌های موقت. .It Ev TAPE دستگاه نواری پیش‌فرض برای استفاده به جای .Pa /dev/rst0 . اگر روی خط تیره .Pq Sq \-\& تنظیم شود، از خروجی استاندارد استفاده خواهد شد. .El .Sh "فایل‌ها (FILES)" .Bl -tag -width "/dev/rst0" .It Pa /dev/rst0 نام بایگانی پیش‌فرض .El .Sh "وضعیت خروج (EXIT STATUS)" ابزار .Nm با یکی از مقادیر زیر به کار خود پایان می‌دهد: .Pp .Bl -tag -width Ds -offset indent -compact .It 0 تمام فایل‌ها با موفقیت پردازش شدند. .It 1 خطایی رخ داد. .El .Sh "مثال‌ها (EXAMPLES)" ایجاد یک بایگانی بر روی درایو نواری پیش‌فرض، شامل فایل‌های با نام .Pa bonvole و .Pa sekve : .Pp .Dl $ \*(nm c bonvole sekve .Pp ارسال یک بایگانی فشرده‌شده با .Xr gzip 1 شامل فایل‌های .Pa bonvole و .Pa sekve به فایلی به نام .Pa foriru.tar.gz : .Pp .Dl $ \*(nm zcf foriru.tar.gz bonvole sekve .Pp ایجاد یک بایگانی همراه با گزارش جزئیات، به نام .Pa backup.tar.gz ، از تمام فایل‌های منطبق با تابع تطبیق مسیر (glob) پوسته .Xr glob 7 به الگوی .Pa *.c : .Pp .Dl $ \*(nm zcvf backup.tar.gz *.c .Pp فهرست کردن تمام فایل‌های منتهی به .Pa .jpeg از یک بایگانی فشرده به نام .Pa backup.tar.gz همراه با جزئیات، بدون استخراج آن‌ها. توجه داشته باشید که الگوی glob برای جلوگیری از بسط داده شدن توسط پوسته در گیومه قرار گرفته است: .Pp .Dl $ \*(nm tvzf backup.tar.gz \*(aq*.jpeg\*(aq .Pp برای مثال‌های دقیق‌تر، به .Xr \*(np 1 مراجعه کنید. .Sh "عیب‌یابی (DIAGNOSTICS)" هرگاه .Nm هنگام استخراج یک بایگانی نتواند یک پرونده یا پیوند را ایجاد کند، یا هنگام نوشتن یک بایگانی نتواند فایلی را بیابد، یا در صورت مشخص بودن گزینه .Fl p نتواند شناسه کاربر، شناسه گروه، حالت فایل یا زمان‌های دسترسی و تغییر را حفظ نماید، یک پیام تشخیصی در خروجی استاندارد خطا نوشته شده و یک مقدار خروج غیر صفر برگردانده می‌شود، اما پردازش ادامه خواهد یافت. در حالتی که .Nm نتواند پیوندی به یک فایل ایجاد کند، مگر اینکه گزینه .Fl M Ar lncp داده شده باشد، .Nm رونوشت دومی از آن فایل ایجاد نخواهد کرد. .Pp اگر استخراج یک فایل از بایگانی پیش از موعد توسط یک سیگنال یا خطا متوقف شود، ممکن است .Nm تنها بخشی از فایل مورد نظر کاربر را استخراج کرده باشد. علاوه بر این، حالت‌های فایل برای فایل‌ها و دایرکتوری‌های استخراج‌شده ممکن است دارای بیت‌های نادرست باشند، و زمان‌های تغییر و دسترسی نیز ممکن است اشتباه باشند. .Pp اگر ایجاد یک بایگانی پیش از موعد توسط یک سیگنال یا خطا متوقف شود، ممکن است .Nm تنها بخشی از بایگانی را ایجاد کرده باشد که این امر می‌تواند مشخصات استاندارد قالب بایگانی مربوطه را نقض کند. .Sh "همچنین ببینید (SEE ALSO)" .Xr ar 1 , .Xr cpio 1 , .ie \ng==1 \{\ .Xr mircpio 1 , .Xr mirpax 1 , .Xr pax 1 , .Xr tar 1 , .Xr deb 5 .\} .el .ie \ng==2 \{\ .Xr pax 1 , .Xr paxcpio 1 , .Xr tar 1 , .Xr deb 5 .\} .el \{\ .Xr pax 1 .\} .Sh "تاریخچه (HISTORY)" دستور .Nm tar نخستین بار در .At v7 ظاهر شد. .Sh "نویسندگان (AUTHORS)" .An -nosplit .An Keith Muller در University of California, San Diego. افزونه‌های .Mx توسط .An mirabilos Aq m@mirbsd.org . .Sh "هشدارها (CAVEATS)" گزینه‌های .Fl aDJjLMo در پیاده‌سازی‌های دیگر .Nm tar قابل‌حمل نیستند و ممکن است در آن‌ها معنای متفاوتی داشته باشند یا اصلاً وجود نداشته باشند. .Pp این پیاده‌سازی ممکن است از گزینه‌های غیر استاندارد دیگری نیز پشتیبانی کند که به دلیل اعمال منسوخ‌سازیِ منتهی به حذف، مستند نشده‌اند. .Sh "اشکالات (BUGS)" قالب پرونده .Ar pax هنوز پشتیبانی نمی‌شود.