tar (الحوسبة)

tar هو تنسيق ملفات وبرنامج لأرشفة الملفات . يجمع البرنامج عدة ملفات في ملف أرشيف واحد بتنسيق tar . طُوّر في الأصل لتخزين البيانات على أشرطة مغناطيسية في أجهزة الكمبيوتر - لقراءة وكتابة البيانات لجهاز إدخال/إخراج تسلسلي بدون نظام ملفات ، واسمه اختصار لوصف التنسيق " أرشيف الشريط ". عند تخزينه في نظام ملفات، يُطلق على الملف الذي يقرأه ويكتبه tar اسم "tarball " .

يحتوي ملف tarball على بيانات وصفية للملفات الموجودة بداخله، بما في ذلك الاسم ، والملكية، والطوابع الزمنية ، والأذونات ، وتنظيم المجلد . وباعتباره ملفًا يحتوي على ملفات أخرى مع بيانات وصفية مرتبطة بها، يُعد ملف tarball مفيدًا لتوزيع البرامج ونسخها احتياطيًا .

تخلت POSIX عن tar لصالح pax ، ومع ذلك لا يزال tar مستخدمًا على نطاق واسع.

تاريخ

أُضيف الأمر tar إلى نظام يونكس في يناير 1979، ليحل محل برنامج tp (الذي بدوره حل محل "tap"). [ 8 ] تم توحيد بنية الملف في معيار POSIX 1-1988 [ 9 ] ولاحقًا في معيار POSIX 1-2001، [ 10 ] وأصبح تنسيقًا مدعومًا من قبل معظم أدوات أرشفة الملفات الحديثة. تم التخلي عن الأمر tar في معيار POSIX 1-2001 لصالح pax ، الذي كان من المفترض أن يدعم تنسيق ملف ustar، وكان من المقرر سحب tar لصالح pax منذ عام 1994 على الأقل. ومع ذلك، تتضمن العديد من أنظمة التشغيل اليوم أدوات لملفات tar، بالإضافة إلى أدوات لضغطها وفك ضغطها، مثل xz و gzip و bzip2 .

تم نقل أمر tar إلى نظام التشغيل IBM i . [ 11 ]

كان برنامج BSD-tar موجودًا في نظام التشغيل Windows منذ عام 2018 ، [ 12 ] [ 13 ] وهناك أدوات أخرى تابعة لجهات خارجية متاحة لنظام التشغيل Windows.

الأساس المنطقي

تقرأ وتكتب العديد من محركات الأشرطة القديمة كتل بيانات متغيرة الطول ، مما يترك مساحة مهدرة كبيرة على الشريط بين الكتل (ليبدأ الشريط ويتوقف عن الحركة فعليًا). تدعم بعض محركات الأشرطة (والأقراص الصلبة) كتل بيانات ثابتة الطول فقط. كذلك، عند الكتابة إلى أي وسيط، مثل نظام الملفات أو الشبكة، يستغرق كتابة كتلة كبيرة واحدة وقتًا أقل من كتابة عدة كتل صغيرة. لذلك، يكتب أمر tar البيانات في سجلات تتكون من عدة كتل بحجم 512 بايت . يمكن للمستخدم تحديد عامل التجميع، وهو عدد الكتل في كل سجل. القيمة الافتراضية هي 20، مما ينتج عنه سجلات بحجم 10 كيلوبايت . [ 14 ]  

تنسيق الملف

توجد عدة صيغ لملفات tar، منها صيغ قديمة وأخرى حديثة. هناك صيغتان معتمدتان في معيار POSIX: ustar و pax . أما صيغة GNU tar، فهي غير معتمدة ولكنها لا تزال مستخدمة.

يتكون أرشيف tar من سلسلة من كائنات الملفات، ومن هنا جاء مصطلح tarball الشائع ، الذي يشير إلى كيفية تجميع tarball للكائنات من جميع الأنواع التي تلتصق بسطحه. يتضمن كل كائن ملف بيانات الملف، ويسبقه سجل رأس بحجم 512 بايت . تُكتب بيانات الملف دون تغيير باستثناء تقريب طولها إلى مضاعفات 512 بايت. لم يكن تطبيق tar الأصلي يهتم بمحتويات بايتات الحشو، وترك بيانات المخزن المؤقت دون تغيير، لكن معظم تطبيقات tar الحديثة تملأ المساحة الإضافية بالأصفار. [ 15 ] تُحدد نهاية الأرشيف بسجلين متتاليين على الأقل مملوءين بالأصفار. (يبدو أن أصل حجم سجل tar هو قطاعات القرص بحجم 512 بايت المستخدمة في نظام ملفات Unix الإصدار 7). تُملأ الكتلة الأخيرة من الأرشيف بالأصفار حتى تصل إلى الطول الكامل.

يحتوي سجل رأس الملف على بيانات وصفية حول الملف. ولضمان قابلية النقل عبر بنى معمارية مختلفة ذات ترتيبات بايتات متباينة ، تُشفّر المعلومات في سجل الرأس باستخدام نظام ASCII . وبالتالي، إذا كانت جميع الملفات في الأرشيف عبارة عن ملفات نصية ASCII، ولها أسماء ASCII، فإن الأرشيف يُعتبر في جوهره ملفًا نصيًا ASCII (يحتوي على العديد من أحرف NUL ).

الحقول المُعرَّفة في تنسيق tar الأصلي لنظام Unix مُدرجة في الجدول أدناه. يتضمن جدول مؤشر الارتباط/نوع الملف بعض الامتدادات الحديثة. عندما يكون الحقل غير مُستخدَم، يُملأ ببايتات فارغة (NUL). يستخدم رأس الملف 257 بايت، ثم يُضاف إليه بايتات فارغة (NUL) ليملأ سجلًا بحجم 512 بايت. لا يوجد "رقم سحري" في رأس الملف لتحديد الملف.

رأس ملف tar قبل معيار POSIX.1-1988 (أي الإصدار 7):

إزاحة الحقلمساحة الملعبمجال
0100مسار الملف واسمه
1008وضع الملف (ثماني)
1088معرّف المستخدم الرقمي للمالك (ثماني)
1168معرّف المستخدم الرقمي للمجموعة (ثماني)
12412حجم الملف بالبايت (ثماني)
13612وقت آخر تعديل بتنسيق الوقت الرقمي لنظام يونكس (ثماني)
1488مجموع التحقق لسجل الرأس
1561مؤشر الارتباط (نوع الملف)
157100اسم الملف المرتبط

يمكن أن يحتوي حقل مؤشر الربط قبل معيار POSIX.1-1988 على القيم التالية:

حقل مؤشر الارتباط
قيمةمعنى
'0' أو ( ASCII NUL )ملف عادي
'1'رابط صلب
'2'الرابط الرمزي

أشارت بعض تطبيقات tar السابقة لـ POSIX.1-1988 إلى الدليل من خلال وجود شرطة مائلة (/) في نهاية الاسم.

تُشفّر القيم العددية كأعداد ثمانية باستخدام أرقام ASCII، مع إضافة أصفار بادئة. قد يبدو هذا الخيار غير بديهي في العصر الحديث، حيث يُفضّل عمومًا استخدام الترميز الست عشري ذي الأربع بتات لأن أحجام السجلات وعرض العناوين في الحواسيب غالبًا ما تكون قوى العدد اثنين ، ولأن البايتات أصبحت تُقاس بالثمانيات . مع ذلك ، طُوّر نظام يونكس في الأصل لجهاز PDP-7 ، الذي يستخدم وحدة معالجة مركزية 18 بت ورمزًا حرفيًا من ست بتات ، مما يجعل الترميز الثماني ذي الثلاث بتات أكثر ملاءمة.

لأسباب تاريخية، يُفضّل استخدام حرف NUL أو مسافة في نهاية الملف. وبالتالي، على الرغم من وجود 12 بايت مخصصة لتخزين حجم الملف، إلا أنه لا يمكن تخزين سوى 11 رقمًا ثمانيًا. هذا يُعطي حجم ملف أقصى يبلغ 8 جيجابايت للملفات المؤرشفة. وللتغلب على هذا القيد، قدّمت شركة ستار في عام 2001 ترميزًا أساسه 256، يُشار إليه بتعيين البت الأعلى رتبة في البايت الأيسر من الحقل الرقمي. وقد اتبعت برامج GNU-tar وBSD-tar هذه الفكرة. بالإضافة إلى ذلك، تقوم إصدارات برنامج tar التي صدرت قبل معيار POSIX الأول عام 1988 بإضافة مسافات بدلًا من الأصفار إلى القيم.

يُحسب مجموع التحقق بجمع قيم البايتات غير الموقعة في سجل الترويسة، مع اعتبار بايتات مجموع التحقق الثمانية مسافات ASCII (القيمة العشرية 32). يُخزن كرقم ثماني مكون من ستة أرقام، يبدأ بأصفار متبوعة بحرف NUL ثم مسافة. لا تلتزم بعض التطبيقات بهذا التنسيق. إضافةً إلى ذلك، تعاملت بعض تطبيقات tar القديمة مع البايتات على أنها مُوقّعة. عادةً ما تحسب التطبيقات مجموع التحقق بالطريقتين، وتعتبره صحيحًا إذا تطابق مجموع البايتات المُوقّعة أو غير المُوقّعة مع مجموع التحقق المُضمّن.

تدعم أنظمة ملفات يونكس روابط متعددة (أسماء) لنفس الملف. إذا ظهرت عدة ملفات من هذا النوع في أرشيف tar، يُؤرشف الملف الأول فقط كملف عادي، بينما تُؤرشف البقية كروابط صلبة، مع تعيين حقل "اسم الملف المرتبط" إلى اسم الملف الأول. عند الاستخراج، يجب إعادة إنشاء هذه الروابط الصلبة في نظام الملفات.

تنسيق يو ستار

تقرأ معظم برامج tar الحديثة وتكتب الأرشيفات بتنسيق UStar ( تنسيق TAR القياسي لنظام Unix [ 8 ] [ 16 ] )، الذي تم تقديمه بموجب معيار POSIX IEEE P1003.1 الصادر عام 1988. وقد أضاف هذا المعيار حقولًا إضافية إلى رأس الملف. تتجاهل برامج tar القديمة هذه المعلومات الإضافية (مما قد يؤدي إلى استخراج ملفات بأسماء غير مكتملة)، بينما تتحقق البرامج الأحدث من وجود سلسلة "ustar" لتحديد ما إذا كان التنسيق الجديد قيد الاستخدام.

يسمح تنسيق UStar بأسماء ملفات أطول ويخزن معلومات إضافية عن كل ملف. يبلغ الحد الأقصى لحجم اسم الملف 255 حرفًا، ولكنه يُقسّم بين مسار سابق (بادئة اسم الملف) واسم الملف نفسه، لذا يمكن أن يكون أقل بكثير. [ 17 ]

إزاحة الحقلمساحة الملعبمجال
0156(عدة حقول، كما في التنسيق القديم)
1561نوع العلم
157100(نفس الحقل كما في التنسيق القديم)
2576مؤشر UStar، "ustar"، ثم NUL
2632نسخة يو ستار، "00"
26532أسماء المستخدمين المالكة
29732اسم مجموعة المالكين
3298رقم الجهاز الرئيسي
3378رقم الجهاز الثانوي
345155بادئة اسم الملف

يمكن أن يحتوي حقل علامة النوع على القيم التالية:

حقل علامة النوع
قيمةمعنى
'0' أو ( ASCII NUL )ملف عادي
'1'رابط صلب
'2'الرابط الرمزي
'3'حلقة خاصة بالشخصيات
'4'عرض خاص على الحي
'5'دليل
'6'FIFO
'7'ملف متجاور
'g'رأس موسع عالمي مع بيانات وصفية (POSIX.1-2001)
'x'رأس موسع يحتوي على بيانات وصفية للملف التالي في الأرشيف (POSIX.1-2001)
من الألف إلى الياءملحقات خاصة بالبائع (POSIX.1-1988)
جميع القيم الأخرىمحجوز للتوحيد القياسي المستقبلي

إن امتدادات POSIX.1-1988 الخاصة بالبائعين والتي تستخدم قيم علامات الارتباط 'A'–'Z' لها معنى مختلف جزئيًا مع البائعين المختلفين، وبالتالي تعتبر قديمة ويتم استبدالها بامتدادات POSIX.1-2001 التي تتضمن أيضًا علامة البائع.

يُصنّف النوع '7' (ملف متجاور) رسميًا على أنه محجوز في معيار POSIX، ولكنه كان يُقصد به الإشارة إلى الملفات التي ينبغي تخصيصها بشكل متجاور على القرص. لا تدعم سوى أنظمة تشغيل قليلة إنشاء مثل هذه الملفات بشكل صريح، وبالتالي فإن معظم برامج tar لا تدعمها، وستتعامل مع ملفات النوع 7 كما لو كانت من النوع 0 (عادي). ويُستثنى من ذلك الإصدارات القديمة من GNU tar، عند تشغيلها على نظام التشغيل MASSCOMP RTU (يونكس في الوقت الحقيقي)، والتي كانت تدعم علامة O_CTG في دالة open() لطلب ملف متجاور؛ ومع ذلك، فقد أُزيل هذا الدعم من إصدار GNU tar 1.24 وما بعده.

POSIX.1-2001/pax

في عام ١٩٩٧، اقترحت شركة صن طريقةً لإضافة امتدادات إلى تنسيق tar. وقد اعتُمدت هذه الطريقة لاحقًا في معيار POSIX.1-2001. يُعرف هذا التنسيق باسم تنسيق tar الموسّع أو تنسيق pax . يسمح تنسيق tar الجديد للمستخدمين بإضافة أي نوع من التحسينات الخاصة بالبائع والمُصنّفة بعلامات خاصة به. تُعرّف معايير POSIX العلامات التالية:

  • atime و mtime : جميع الطوابع الزمنية لملف بدقة عشوائية (تستخدم معظم التطبيقات دقة النانو ثانية)
  • المسار : أسماء مسارات ذات طول غير محدود وتشفير مجموعة الأحرف
  • مسار الارتباط : أسماء أهداف الروابط الرمزية ذات طول غير محدود وتشفير مجموعة الأحرف
  • uname و gname : أسماء المستخدمين والمجموعات ذات الطول غير المحدود وتشفير مجموعة الأحرف
  • الحجم : ملفات ذات حجم غير محدود (كان حجم تنسيق tar التاريخي 8 جيجابايت)
  • uid و gid : معرف المستخدم ومعرف المجموعة بدون قيود على الحجم (يقتصر تنسيق tar التاريخي على معرف أقصى يبلغ 2097151)
  • تعريف مجموعة الأحرف لأسماء المسارات وأسماء المستخدمين/المجموعات ( UTF-8 )

في عام 2001، أصبح برنامج Star أول برنامج tar يدعم التنسيق الجديد. وفي عام 2004، دعم برنامج GNU tar التنسيق الجديد، [ 18 ] على الرغم من أنه لم يكن يكتبه كمخرج افتراضي لبرنامج tar حتى ذلك الحين. [ 19 ]

صُمم تنسيق pax بحيث تتمكن جميع البرامج القادرة على قراءة تنسيق UStar من قراءة تنسيق pax أيضًا. الاستثناء الوحيد هو الملفات التي تستخدم ميزات إضافية، مثل أسماء الملفات الطويلة. ولضمان التوافق، تُشفّر هذه الملفات في ملفات tar كملفات خاصة xأو gملفات من نوع معين، عادةً ضمن PaxHeaders.XXXXدليل. [ 20 ] : exthdr.name سيستخدم البرنامج الداعم لتنسيق pax هذه المعلومات، بينما ستعالجها البرامج غير الداعمة، مثل 7-Zip، كملفات إضافية. [ 21 ]

ميزات أدوات الأرشفة

إلى جانب إنشاء واستخراج الأرشيفات، تختلف وظائف أدوات الأرشفة المختلفة. على سبيل المثال، قد تقوم بعض التطبيقات بالكشف التلقائي عن تنسيق أرشيفات tar المضغوطة لاستخراجها، مما يُغني المستخدم عن تحديده، كما تتيح للمستخدم إمكانية حصر إضافة الملفات بتلك التي تم تعديلها بعد تاريخ محدد. [ 22 ] [ 23 ]

الاستخدامات

صيغة الأمر

tar [-options] <اسم ملف tar المضغوط> [الملفات أو المجلدات المراد إضافتها إلى الأرشيف] الخيارات الأساسية:

  • -c, --create— إنشاء أرشيف جديد؛
  • -a, --auto-compress — بالإضافة إلى ذلك، قم بضغط الأرشيف باستخدام برنامج ضغط سيتم تحديده تلقائيًا بناءً على امتداد اسم الملف. إذا كان اسم الأرشيف ينتهي بـ gzip، *.tar.gzفاستخدم gzip ، وإذا كان ينتهي بـ xz، *.tar.xzفاستخدم xz ، أما إذا كان ينتهي *.tar.zstبـ Zstandard، وهكذا.
  • -r, --append— إلحاق الملفات بنهاية الأرشيف؛
  • -x, --extract, --get— استخراج الملفات من الأرشيف؛
  • -f, --file— حدد اسم الأرشيف؛
  • -t, --list— عرض قائمة بالملفات والمجلدات الموجودة في الأرشيف؛
  • -v, --verbose— عرض قائمة بالملفات التي تمت معالجتها.

الاستخدام الأساسي

أنشئ ملف أرشيف archive.tarمن الملف README.txtوالمجلد التالي src:

$ tar -cvf archive.tar README.txt src 

استخرج محتويات الملف archive.tarإلى المجلد الحالي:

$ tar -xvf archive.tar 

أنشئ ملف أرشيف archive.tar.gzمن الملف README.txtوالمجلد srcوقم بضغطه باستخدام gzip  :

$ tar -cavf archive.tar.gz README.txt src 

استخرج محتويات الملف archive.tar.gzإلى المجلد الحالي:

$ tar -xvf archive.tar.gz 

غطاء مشمع

تُعدّ عملية tarpipe طريقةً لكتابة ملف مضغوط إلى المخرج القياسي ، ثم تمريره إلى عملية tar أخرى عبر مدخلها القياسي ، حيث تعمل في دليل آخر، ويتم فك ضغطه. تقوم هذه العملية بنسخ شجرة دليل المصدر بالكامل، بما في ذلك جميع الملفات الخاصة، على سبيل المثال:

$ القطران CF - srcdir | القطران x -C destdir 

توزيع البرمجيات

لا يزال تنسيق tar يُستخدم على نطاق واسع لتوزيع البرمجيات مفتوحة المصدر . وتستخدمه توزيعات أنظمة *NIX في آليات توزيع مختلفة للبرامج المصدرية والثنائية، حيث يتم توفير معظم شفرة المصدر البرمجية في أرشيفات tar المضغوطة.

القيود

تم إنشاء تنسيق tar الأصلي في الأيام الأولى لنظام يونكس، وعلى الرغم من استخدامه الواسع النطاق حاليًا، إلا أن العديد من ميزات تصميمه تعتبر قديمة. [ 24 ]

تم ابتكار صيغ أخرى لمعالجة أوجه القصور في صيغة tar.

أسماء الملفات

بسبب حجم الحقل ، لم يكن تنسيق tar الأصلي قادرًا على تخزين مسارات الملفات وأسمائها التي تتجاوز 100 حرف.

للتغلب على هذه المشكلة مع الحفاظ على سهولة قراءة ملفات tar بواسطة برامج tar الحالية ، يخزن برنامج GNU tar مسارات الملفات وأسمائها التي تتجاوز 100 حرف في @LongLinkمدخلات تُعتبر ملفات عادية بالنسبة لبرامج tar التي لا تتعرف على هذه الميزة. [ 25 ] وبالمثل، يستخدم تنسيق PAXPaxHeaders مدخلات. [ 26 ]

صفات

لا تُسجّل العديد من تطبيقات tar القديمة السمات الموسّعة (xattrs) أو قوائم التحكم بالوصول (ACLs) ولا تستعيدها. في عام 2001، قدّمت Star دعمًا لقوائم التحكم بالوصول والسمات الموسّعة، من خلال وسومها الخاصة بـ POSIX.1-2001 pax. يستخدم bsdtar امتدادات Star لدعم قوائم التحكم بالوصول. [ 27 ] تدعم الإصدارات الأحدث من GNU tar السمات الموسّعة لنظام Linux، مع إعادة تنفيذ امتدادات Star. [ 28 ] تمت مراجعة عدد من الامتدادات في دليل أنواع الملفات لـ BSD tar، tar(5). [ 27 ]

قنبلة قطران

في مصطلحات المخترقين ، يُطلق مصطلح "القنبلة المضغوطة" على ملف مضغوط يحتوي على عدد كبير من الملفات، حيث تُكتب محتوياته في المجلد الحالي أو أي مجلد موجود آخر عند فك ضغطه، بدلاً من المجلد الذي أنشأه الملف المضغوط خصيصاً للمخرجات المستخرجة. [ 29 ] يُعد هذا الأمر مزعجاً للمستخدم، الذي يضطر إلى تحديد وحذف عدد من الملفات المتداخلة مع محتويات المجلد الأخرى. ويُعتبر هذا السلوك غير لائق من جانب مُنشئ الأرشيف.

تتمثل إحدى المشكلات ذات الصلة في استخدام المسارات المطلقة أو مراجع الدليل الأصل عند إنشاء ملفات tar. غالبًا ما تُنشأ الملفات المستخرجة من هذه الأرشيفات في مواقع غير معتادة خارج دليل العمل، ومثل قنبلة tar، لديها القدرة على الكتابة فوق الملفات الموجودة. ومع ذلك، لا تقوم الإصدارات الحديثة من FreeBSD وGNU tar بإنشاء أو استخراج المسارات المطلقة ومراجع الدليل الأصل افتراضيًا، إلا إذا سُمح بذلك صراحةً باستخدام العلامة -Pأو الخيار --absolute-names. كما أن برنامج bsdtar، المتوفر أيضًا على العديد من أنظمة التشغيل وهو تطبيق tar الافتراضي على Mac OS X v10.6، لا يتبع مراجع الدليل الأصل أو الروابط الرمزية. [ 30 ]

إذا كان لدى المستخدم ملف tar قديم جدًا لا يتضمن إجراءات الأمان المطلوبة، فيمكن التخفيف من هذه المشاكل بفحص ملف tar أولًا باستخدام الأمر `tar.tar.tar.tar.tar.tar` tar tf archive.tar، الذي يعرض محتويات الملف ويسمح باستبعاد الملفات التي بها مشاكل لاحقًا. لا تستخرج هذه الأوامر أي ملفات، بل تعرض أسماء جميع الملفات في الأرشيف. إذا وُجد أي ملف به مشاكل، يمكن للمستخدم إنشاء مجلد فارغ جديد واستخراج الأرشيف إليه، أو تجنب ملف tar تمامًا. تستطيع معظم الأدوات الرسومية عرض محتويات الأرشيف قبل استخراجها. يمكن لبرنامج Vim فتح أرشيفات tar وعرض محتوياتها. كما يستطيع برنامج GNU Emacs فتح أرشيف tar وعرض محتوياته في مخزن مؤقت .

الوصول العشوائي

صُمم تنسيق tar بدون فهرس مركزي أو جدول محتويات للملفات وخصائصها، وذلك لتسهيل نقلها إلى أجهزة النسخ الاحتياطي الشريطية. بدلاً من ذلك، تُخزن البيانات الوصفية لكل ملف (مثل الاسم والحجم والطوابع الزمنية) في ترويسة قبل كل ملف. يجب قراءة الأرشيف بالتسلسل لعرض الملفات أو استخراجها. بالنسبة لأرشيفات tar الكبيرة، يُؤدي هذا إلى انخفاض الأداء، مما يجعلها غير مناسبة للحالات التي تتطلب الوصول العشوائي إلى الملفات الفردية.

وبالتالي، يجعل هذا التصميم ملفات tar مقاومة للتلف الناتج عن فقدان أجزاء منها، سواءً كانت ملفات رقمية أو أشرطة تخزين فعلية. فحتى ملف tar مُقتطع بأجزاء مفقودة من طرفيه، يُمكن استعادة الأجزاء غير المفقودة، بما في ذلك مسارات الملفات وأسمائها وبياناتها الوصفية، وذلك بالبدء من أول رأس ملف tar غير مفقود. [ 31 ]

مع وجود ملف tar سليم البنية مُخزّن على وسيط قابل للبحث (أي يسمح بقراءة عشوائية فعّالة)، tarيستطيع البرنامج البحث عن ملف بسرعة نسبية (في زمن خطي بالنسبة لعدد الملفات) عن طريق تخطي قراءات الملفات وفقًا لحقل "الحجم" في رؤوس الملفات. هذا هو أساس خيار -ntar في GNU. عند ضغط ملف tar كاملًا، فإن تنسيق الضغط، الذي يكون عادةً غير قابل للبحث، يمنع إجراء هذا التحسين. [ 32 ] وللحفاظ على إمكانية البحث، يجب أيضًا دمج ملفات tar بشكل صحيح، عن طريق إزالة كتلة الأصفار الزائدة في نهاية كل أرشيف. [ 33 ]

نسخ مكررة

من المشاكل الأخرى المتعلقة بصيغة tar أنها تسمح بوجود عدة ملفات (قد تكون مختلفة) في الأرشيف بنفس المسارات والأسماء. عند استخراج هذا الأرشيف، عادةً ما تحل النسخة الأحدث من الملف محل النسخة السابقة.

يمكن أن يؤدي هذا إلى إنشاء ملف مضغوط غير صريح (غير واضح)، والذي من الناحية الفنية لا يحتوي على ملفات ذات مسارات مطلقة أو تشير إلى الدلائل الأصلية، ولكنه لا يزال يتسبب في الكتابة فوق الملفات خارج الدليل الحالي (على سبيل المثال، قد يحتوي الأرشيف على ملفين بنفس المسار واسم الملف، الأول هو رابط رمزي إلى موقع ما خارج الدليل الحالي، والثاني هو ملف عادي؛ ثم قد يؤدي استخراج مثل هذا الأرشيف على بعض تطبيقات tar إلى الكتابة إلى الموقع الذي يشير إليه الرابط الرمزي).

التطبيقات الرئيسية

تاريخيًا، اعتمدت العديد من الأنظمة بروتوكول tar، كما أن العديد من برامج أرشفة الملفات العامة تدعم tar جزئيًا على الأقل (غالبًا باستخدام أحد التطبيقات المذكورة أدناه). تاريخ tar حافلٌ بعدم التوافق، والمعروف باسم "حروب tar". تستطيع معظم تطبيقات tar أيضًا قراءة وإنشاء ملفات cpio و pax (الأخيرة في الواقع هي صيغة tar مع امتدادات POSIX 2001).

أهم التطبيقات مرتبة حسب تاريخ المنشأ:

  • برنامج Solaris tar ، المبني على برنامج Unix V7 tar الأصلي، يأتي كبرنامج افتراضي في نظام التشغيل Solaris
  • يُعدّ برنامج GNU tar البرنامج الافتراضي في معظم توزيعات لينكس . وهو مبني على برنامج pdtar المتاح للجميع والذي بدأ استخدامه عام 1987. ويمكن للإصدارات الحديثة استخدام تنسيقات مختلفة، بما في ذلك ustar وpax وGNU وv7.
  • أصبح برنامج tar في نظام FreeBSD (ويُعرف أيضًا باسم tar في نظام BSD ) هو برنامج tar الافتراضي في معظم أنظمة التشغيل المبنية على توزيعة Berkeley Software ، بما في ذلك نظام Mac OS X. تتوفر وظائفه الأساسية كمكتبة libarchive لاستخدامها في تطبيقات أخرى. يكتشف هذا البرنامج تلقائيًا تنسيق الملف، ويمكنه استخراج الملفات من ملفات tar وpax وcpio وzip وrar وar وxar وrpm وصور أقراص CD-ROM بصيغة ISO 9660. كما يأتي مزودًا بواجهة سطر أوامر cpio مكافئة وظيفيًا.
  • لغة شيلي تار ، المعروفة باسم ستار ( تُلفظ / ˈɛsˌtɑːr / ، ESS -tar[ 34 ] ذات أهمية تاريخية نظرًا لشعبية بعض امتداداتها. نُشرت لأول مرة في أبريل 1997، [ 35 ] وقد صرّح مطوّرها بأنه بدأ تطويرها عام 1982. [ 36 ]
  • تدعم وحدة tarfile في بايثون العديد من تنسيقات tar، بما في ذلك ustar وpax وgnu؛ ويمكنها قراءة تنسيق V7 وتنسيق tar الموسع لنظام SunOS، ولكن لا يمكنها إنشاءهما؛ وpax هو التنسيق الافتراضي لإنشاء الأرشيفات. [ 37 ] متوفرة منذ عام 2003. [ 38 ]

بالإضافة إلى ذلك، يمكن لمعظم تطبيقات pax و cpio قراءة وإنشاء أنواع متعددة من ملفات tar.

لواحق الملفات المضغوطة

عادةً ما تحتوي ملفات الأرشيف tar على لاحقة الملف .tar (على سبيل المثال somefile.tar ).

يحتوي ملف أرشيف tar على تدفقات بايت غير مضغوطة للملفات التي يحتويها. ولتحقيق ضغط الأرشيف، تتوفر مجموعة متنوعة من برامج الضغط ، مثل gzip و bzip2 و xz و lzip و lzma و zstd و compress ، والتي تضغط أرشيف tar بالكامل. عادةً، يُسمى الملف المضغوط للأرشيف باسم ملف آخر عن طريق إضافة لاحقة برنامج الضغط الخاص بالتنسيق إلى اسم ملف الأرشيف. على سبيل المثال، يُسمى أرشيف tar المسمى archive.tar باسم archive.tar.gz عند ضغطه باستخدام gzip.

تدعم برامج tar الشائعة، مثل إصدارات BSD و GNU من tar ، خيارات سطر الأوامر Z (ضغط)، وz (gzip)، و j (bzip2) لضغط أو فك ضغط ملف الأرشيف عند إنشائه أو فك ضغطه. وتشمل الإضافات الحديثة نسبيًا --lzma ( LZMAو--lzop ( lzopو--xz أو J ( xzو--lzip (lzip)، و-- zstd . [ 39 ] تتم معالجة فك ضغط هذه التنسيقات تلقائيًا في حال استخدام امتدادات أسماء الملفات المدعومة، كما تتم معالجة الضغط تلقائيًا باستخدام امتدادات أسماء الملفات نفسها في حال تمرير الخيار --auto-compress (الاختصار -a ) إلى إصدار GNU tar المناسب. [ 17 ] يكتشف BSD tar نطاقًا أوسع من برامج الضغط ( lrzip ، lz4 )، باستخدام البيانات الموجودة بداخله وليس اسم الملف. [ 40 ] يجب ضغط أو فك ضغط التنسيقات غير المعروفة يدويًا عن طريق التوجيه.

أدت قيود نظام التشغيل MS-DOS 8.3 على أسماء الملفات إلى وضع قواعد إضافية لتسمية ملفات tar المضغوطة. إلا أن هذه الممارسة تراجعت مع توفير نظام FAT الآن لأسماء ملفات طويلة .

يُستخدم ترميز Tar غالبًا مع طريقة ضغط أخرى، مثل gzip ، لإنشاء أرشيف مضغوط. وكما هو موضح، يتم ضغط مجموعة الملفات في الأرشيف كوحدة واحدة.
مكافئات لاحقة الملف [ 17 ]
ضاغططويلقصير
bzip2.tar.bz2.tb2، .tbz، .tbz2، .tz2
gzip.tar.gz.taz، .tgz
lzip.tar.lz
لزما.tar.lzma.tlz
lzop.tar.lzo
xz.tar.xz.txz
ضغط.تار.زد.tZ، .taZ
zstd.tar.zst.tzst

انظر أيضاً

مراجع

  1. "libarchive - مكتبة C وأدوات سطر الأوامر لقراءة وكتابة ملفات tar و cpio و zip و ISO وغيرها من تنسيقات الأرشيف @ GitHub" . www.libarchive.org .
  2. سيرجي بوزنياكوف (18 يوليو 2023). "إصدار tar-1.35 [ مستقر ] " . تم الاطلاع عليه بتاريخ 26 يوليو 2023 .
  3. جون جيلمور (10 ديسمبر 1986). "v07i088: برنامج TAR متاح للعموم" . مجموعة الأخبار : mod.sources . مؤرشف من الأصل بتاريخ 7 فبراير 2022. تم الاطلاع عليه بتاريخ 7 فبراير 2022 . 
  4. "posixtar" . مؤرشف من الأصل بتاريخ 27-06-2022 . تم الاطلاع عليه بتاريخ 07-02-2022 .
  5. "نجمة" . مؤرشف من الأصل بتاريخ 12-11-2023 . تم الاطلاع عليه بتاريخ 12-11-2023 .
  6. جيلمور، جون؛ فينلاسون، جاي (4 فبراير 2019). "تنسيق Tar الأساسي" . gnu.org . وآخرون. مؤسسة البرمجيات الحرة . تم الاطلاع عليه في 17 أبريل 2019 .
  7. "pax" . pubs.opengroup.org . تم الاطلاع عليه بتاريخ 20 يوليو 2026 .
  8. 1 2 "صفحة دليل tar(5)" . FreeBSD.org . FreeBSD. 20 مايو 2004. تم الاطلاع عليه في 2 مايو 2017 .
  9. معيار IEEE 1003.1-1988، معيار IEEE لتكنولوجيا المعلومات - واجهة نظام التشغيل المحمولة (POSIX)
  10. معيار IEEE 1003.1-2001، معيار IEEE لتكنولوجيا المعلومات - واجهة نظام التشغيل المحمولة (POSIX)
  11. آي بي إم . "برمجة Qshell لنظام IBM System i الإصدار 7.2" (ملف PDF) . آي بي إم . تم الاطلاع عليه بتاريخ 5 سبتمبر 2020 .
  12. "الإعلان عن الإصدار التجريبي 17063 من نظام التشغيل Windows 10 لأجهزة الكمبيوتر الشخصية" . مدونة تجربة Windows . 19 ديسمبر 2017. تم الاطلاع عليه في 2 يوليو 2018 .
  13. "القطران والتجعيد يصلان إلى ويندوز!" . 2019-03-22.
  14. "الحظر" . ftp.gnu.org . تم الاسترجاع في 26-08-2020 .
  15. هو، جيمس. "فتح/استخراج ملفات TAR باستخدام برامج مجانية على أنظمة ويندوز/ماك/لينكس" . e7z Org . مؤرشف من الأصل في 6 فبراير 2015. تم الاطلاع عليه في 3 سبتمبر 2019 .
  16. ↑ كينتزل ، تيم (1995). تنسيقات ملفات الإنترنت . كتب مجموعة كوريوليس. ص 196. ISBN  978-1-883577-56-8تم الاطلاع عليه بتاريخ 10 نوفمبر 2022 .
  17. 1 2 3 "GNU tar 1.32: 8.1 استخدام مساحة أقل من خلال الضغط" . GNU . 2019-02-23 . تم الاسترجاع في 2019-08-11 .
  18. الأخبار ، git.savannah.gnu.org - ابحث عن "تمت إضافة دعم لتنسيقات أرشيف POSIX.1-2001 و ustar".
  19. "GNU tar 1.34: 8. التحكم في تنسيق الأرشيف" . GNU . تم الاسترجاع في 11 يوليو 2022 .
  20. مرجع الصدفة والأدوات المساعدة، مواصفات يونكس الموحدة ، الإصدار 5 من مجموعة Open Grouppax  
  21. "#2116 ملفات Tar ذات رؤوس pax لا يتم تحليلها" . 7-Zip / الأخطاء | SourceForge .
  22. https://www.gnu.org/software/tar/manual/html_section/after.html GNU tar 1.35: 6.8 يعمل فقط على الملفات الجديدة
  23. https://www.baeldung.com/linux/bsd-tar-gnu-tar-star الفرق بين BSD tar و GNU tar و star | Baeldung على لينكس
  24. "duplicity: تنسيق ملف جديد" . duplicity.nongnu.org .
  25. gnu_tar/src/create.c في الفرع الرئيسي · gitGNU/gnu_tar · GitHub ، السطر 546
  26. src/bin/pax/tar.c في 8df76133309eacd4092b091ee0504adb842322a5 · openbsd/src · GitHub ، السطر 1066
  27. 1 2دليل تنسيقات ملفات FreeBSDtar(5)  
  28. "السمات الموسعة: الجيد، وغير الجيد، والسيئ" . Les bons comptes . 15 يوليو 2014. مؤرشف من الأصل في 14 ديسمبر 2014. تم الاطلاع عليه في 3 سبتمبر 2019. يمكن أن تكون السمات الموسعة ذات قيمة كبيرة لتخزين بيانات تعريف الملف (مثل: author="John Smith"، subject="country landscape" )، في العديد من الحالات التي لا ترغب فيها أو لا تستطيع تخزين هذه البيانات في خصائص الملف الداخلية.
  29. "تعريف القنبلة المخروطية" . مشروع معلومات لينكس . تم الاسترجاع في 12-12-2024 .
  30. "bsdtar(1)" . man.freebsd.org .
  31. إنشاء ملف tar مع فقدان 100 كيلوبايت في البداية:tail --bytes=+100000 "intact archive.tar" >>"missing beginning.tar". يمكن العثور على الترويسة التالية باستخدام محرر سداسي عشري . استعادة الملف باستخدام. لا حاجة لعلامات الاقتباس لأسماء الملفات التي لا تحتوي على مسافات.dd if="missing beginning.tar" of=recovered.tar ibs=[bytes until next header which starts with file path and name] skip=1
  32. بيل ثور (28 يوليو 2017). "ما الذي يجعل ملف tar قابلاً للبحث؟" . سوبر يوزر . تم الاطلاع عليه في 15 ديسمبر 2023 .
  33. "GNU tar 1.35: 4.2.4 دمج الأرشيفات باستخدام --concatenate" . www.gnu.org .
  34. فريق schilytools. "مجموعة من الأدوات التي كتبها أو أدارها سابقًا يورغ شيلينغ" . تم الاطلاع عليه بتاريخ 4 ديسمبر 2025 .
  35. توماس إي. ديكي (4 يناير 2015). "القطران مقابل سهولة النقل: قطران شيلي" . تم الاطلاع عليه في 23 أكتوبر 2021 .
  36. يورغ شيلينغ (4 سبتمبر 2021). "ستار - جهاز أرشفة أشرطة قياسي فريد" . مؤرشف من الأصل في 23 أكتوبر 2021. تم الاسترجاع في 23 أكتوبر 2021 .
  37. وحدة tarfile ، python.org
  38. tarfile.py ، github.com
  39. بوزنياكوف، سيرجي (2019-01-02). "إصدار tar-1.31 [ مستقر ] " . قوائم بريد جنو . تم الاسترجاع في 2019-08-06 .
  40. دليل الأوامر العامة لنظام FreeBSDtar(1)  

للمزيد من القراءة