OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

قطران

في عالم البرمجيات الشبيه بـ Unix ، فإن قطران البرنامج هو الأداة الكلاسيكية لأرشفة الملفات.


اسمها ، باختصار أرشيف الشريطيكشف جذوره كأداة لعمل شرائط احتياطية. على الرغم من أنه لا يزال مستخدمًا لهذه المهمة التقليدية ، إلا أنه ماهر أيضًا على أجهزة التخزين الأخرى. غالبًا ما نرى أسماء ملفات تنتهي بالامتداد .قطران or . TGZ، والتي تشير إلى أرشيف tar "عادي" وأرشيف بتنسيق gzip ، على التوالي. يمكن أن يتكون أرشيف tar من مجموعة من الملفات المنفصلة ، أو تسلسل هرمي للدليل واحد أو أكثر ، أو مزيج من الاثنين معًا. يعمل بناء جملة com - mand على النحو التالي:

قطران طريقة[الخيارات] اسم المسار

أين طريقة هو أحد أوضاع التشغيل التالية (يتم عرض قائمة جزئية فقط هنا ؛ راجع ملف قطران صفحة الدليل للحصول على قائمة كاملة):


الجدول 18-2: أوضاع القطران


وصف الوضع

وصف الوضع

ج قم بإنشاء أرشيف من قائمة الملفات و / أو الدلائل.


صورة

س استخراج أرشيف.


صورة

r إلحاق أسماء المسار المحددة بنهاية الأرشيف.


صورة

ر قائمة محتويات الأرشيف.


صورة


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



[me @ linuxbox ~] $ mkdir -p playground / dir- {001..100}

[me @ linuxbox ~] $ المس الملعب / dir- {001..100} / ملف- {A..Z}

[me @ linuxbox ~] $ mkdir -p playground / dir- {001..100}

[me @ linuxbox ~] $ المس الملعب / dir- {001..100} / ملف- {A..Z}


بعد ذلك ، لنقم بإنشاء أرشيف tar للملعب بأكمله:



[me @ linuxbox ~] $ القطران cf playground.tar

[me @ linuxbox ~] $ القطران cf playground.tar


يقوم هذا الأمر بإنشاء أرشيف tar باسم الملعب الذي يحتوي على التسلسل الهرمي لدليل مساحة اللعب بالكامل. يمكننا أن نرى أن الوضع و f الخيار ، والذي يستخدم لتحديد اسم ملف قطران الأرشيف ، قد يتم ضمها معًا ، ولا تتطلب شرطة رئيسية. لاحظ ، مع ذلك ، أنه يجب دائمًا تحديد الوضع أولاً ، قبل أي خيار آخر.

لسرد محتويات الأرشيف ، يمكننا القيام بذلك:


[me @ linuxbox ~] $ القطران tf playground.tar

[me @ linuxbox ~] $ القطران tf playground.tar


للحصول على قائمة أكثر تفصيلاً ، يمكننا إضافة v (مطوّل) الخيار:


[me @ linuxbox ~] $ القطران tvf ملعب.tar

[me @ linuxbox ~] $ القطران tvf ملعب.tar


الآن ، دعنا نستخرج الملعب في مكان جديد. سنفعل ذلك عن طريق إنشاء مكتبة جديدة باسم فووتغيير الدليل واستخراج أرشيف القطران:


[me @ linuxbox ~] $ مكدير فو

[me @ linuxbox ~] $ القرص المضغوط فو

[me @ linuxbox foo] $ القطران xf ../playground.tar

[me @ linuxbox foo] $ ls

ملعب

[me @ linuxbox ~] $ مكدير فو

[me @ linuxbox ~] $ القرص المضغوط فو

[me @ linuxbox foo] $ القطران xf ../playground.tar

[me @ linuxbox foo] $ ls

ملعب


إذا فحصنا محتويات ~ / فو / الملعب، نرى أن الأرشيف قد تم تثبيته بنجاح ، مما أدى إلى استنساخ دقيق للملفات الأصلية. ومع ذلك ، هناك تحذير واحد: ما لم تكن تعمل كمستخدم متميز ، فإن الملفات والأدلة المستخرجة من الأرشيف تأخذ ملكية المستخدم الذي يقوم بعملية الاستعادة ، بدلاً من المالك الأصلي.

سلوك آخر مثير للاهتمام قطران هي الطريقة التي يتعامل بها مع أسماء المسار في الأرشيف. خطأ أسماء المسار نسبي ، وليس مطلق. قطران يفعل هذا ببساطة عن طريق إزالة أي شرطة مائلة من اسم المسار عند إنشاء الأرشيف. للتوضيح ، سنعيد إنشاء أرشيفنا ، هذه المرة مع تحديد اسم مسار مطلق:



[me @ linuxbox foo] $ cd

[me @ linuxbox ~] $ القطران cf playground2.tar ~ / playground

[me @ linuxbox foo] $ cd

[me @ linuxbox ~] $ القطران cf playground2.tar ~ / playground


تذكر، ~ / الملعب سوف تتوسع في / الصفحة الرئيسية / أنا / الملعب عندما نضغط على مفتاح الإدخال ، سنحصل على اسم مسار مطلق لمظهرتنا. بعد ذلك ، سنستخرج الأرشيف كما في السابق ونشاهد ما يحدث:



[me @ linuxbox ~] $ القرص المضغوط فو

[me @ linuxbox foo] $ القطران xf ../playground2.tar

[me @ linuxbox foo] $ ls

ملعب البيت [me @ linuxbox foo] $ ls المنزل

[me @ linuxbox ~] $ القرص المضغوط فو

[me @ linuxbox foo] $ القطران xf ../playground2.tar

[me @ linuxbox foo] $ ls

ملعب البيت [me @ linuxbox foo] $ ls المنزل


me

[me @ linuxbox foo] $ ls المنزل / أنا

ملعب

me

[me @ linuxbox foo] $ ls المنزل / أنا

ملعب


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

لنفكر في مثال افتراضي وعملي عن قطران في العمل. تخيل أننا نريد نسخ الدليل الرئيسي ومحتوياته من نظام إلى آخر ولدينا محرك أقراص ثابت USB كبير يمكننا استخدامه للنقل. في نظام Linux الحديث الخاص بنا ، يتم تثبيت محرك الأقراص "تلقائيًا" في ملف /وسائل الإعلام الدليل. لنتخيل أيضًا أن القرص له اسم وحدة تخزين BigDisk عندما نعلقها. لعمل أرشيف tar ، يمكننا القيام بما يلي:



[me @ linuxbox ~] $ sudo tar cf /media/BigDisk/home.tar / home

[me @ linuxbox ~] $ sudo tar cf /media/BigDisk/home.tar / home


بعد كتابة ملف tar ، نقوم بإلغاء تحميل محرك الأقراص وإرفاقه بالكمبيوتر الثاني. مرة أخرى ، تم تركيبه في / media / BigDisk. لاستخراج الأرشيف ، نقوم بما يلي:


[me @ linuxbox2 ~] $ مؤتمر نزع السلاح /

[me @ linuxbox2 /] $ Sudo tar xf /media/BigDisk/home.tar

[me @ linuxbox2 ~] $ مؤتمر نزع السلاح /

[me @ linuxbox2 /] $ Sudo tar xf /media/BigDisk/home.tar


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

عند استخراج أرشيف ، من الممكن تقييد ما يتم استخراجه من الأرشيف. على سبيل المثال ، إذا أردنا استخراج ملف واحد من أرشيف ، فيمكن القيام بذلك على النحو التالي:



القطران xf archive.tar اسم المسار

القطران xf archive.tar اسم المسار


عن طريق إضافة زائدة اسم المسار للأمر ، قطران سيستعيد الملف المحدد فقط. قد يتم تحديد أسماء مسارات متعددة. لاحظ أن اسم المسار يجب أن يكون هو العلاقة الكاملة والدقيقة-


اسم المسار كما تم تخزينه في الأرشيف. عند تحديد أسماء المسار ، لا يتم دعم أحرف البدل عادةً ؛ ومع ذلك ، فإن إصدار جنو من قطران (وهو الإصدار الأكثر تواجدًا في توزيعات Linux) يدعمها بامتداد - البطاقات البرية اختيار. هنا مثال باستخدام السابق الملعب ملف:


[me @ linuxbox ~] $ القرص المضغوط فو

[me @ linuxbox foo] $ tar xf ../playground2.tar - البطاقات البرية 'home / me / pla yground / dir - * / file-A'

[me @ linuxbox ~] $ القرص المضغوط فو

[me @ linuxbox foo] $ tar xf ../playground2.tar - البطاقات البرية 'home / me / pla yground / dir - * / file-A'


سيقوم هذا الأمر باستخراج الملفات المطابقة لاسم المسار المحدد بما في ذلك حرف البدل دير- *.

غالبًا ما يستخدم القطران جنبًا إلى جنب مع البحث لإنتاج المحفوظات. في هذا المثال ، سنستخدم find لإنتاج مجموعة من الملفات لتضمينها في أرشيف:


[me @ linuxbox ~] $ اعثر على ملعب -اسم 'file-A' -exec tar rf playground.tar '{}' '+'

[me @ linuxbox ~] $ اعثر على ملعب -اسم 'file-A' -exec tar rf playground.tar '{}' '+'


هنا نستخدم جد لمطابقة جميع الملفات في ملعب عين ملف وبعد ذلك ، باستخدام إكسيك العمل ، نستدعي قطران في وضع الإلحاق (r) لإضافة الملفات المطابقة للأرشيف الملعب.

باستخدام قطران مع جد طريقة جيدة للإنشاء النسخ الاحتياطية الإضافية من شجرة دليل أو نظام كامل. باستخدام جد لمطابقة الملفات الأحدث من ملف الطابع الزمني ، يمكننا إنشاء أرشيف يحتوي فقط على ملفات أحدث من الأرشيف الأخير ، بافتراض أن ملف الطابع الزمني يتم تحديثه مباشرة بعد إنشاء كل أرشيف.

يمكن أن يستخدم القطران أيضًا كل من المدخلات والمخرجات القياسية. هنا امتحان شامل:



[me @ linuxbox foo] $ cd

[me @ linuxbox ~] $ اعثر على الملعب -اسم 'file-A' | القطران cf - - الملفات- من = - | gzip> playground.tgz

[me @ linuxbox foo] $ cd

[me @ linuxbox ~] $ اعثر على الملعب -اسم 'file-A' | القطران cf - - الملفات- من = - | gzip> playground.tgz


في هذا المثال ، استخدمنا الامتداد جد برنامج لإنتاج قائمة بالملفات المطابقة وتوجيهها إلى ملفات قطران. إذا تم تحديد اسم الملف "-" ، فيؤخذ على أنه يعني الإدخال القياسي أو الإخراج ، حسب الحاجة. (بالمناسبة ، يستخدم عدد من البرامج الأخرى أيضًا اصطلاح استخدام "-" لتمثيل إدخال / إخراج معياري). ال - ملفات من الخيار (والذي يمكن تحديده أيضًا كـ -T) الأسباب قطران لقراءة قائمة المسار الخاصة به من ملف بدلاً من ذلك


من سطر الأوامر. أخيرًا ، تم إنتاج الأرشيف بواسطة قطران إلى GZIP لإنشاء أرشيف مضغوط ملعب.tgz. . TGZ التمديد هو الامتداد التقليدي الممنوح لملفات tar مضغوطة بتنسيق gzip. تمديد .tar.gz يستخدم أيضًا في بعض الأحيان.

بينما استخدمنا ملف GZIP خارجيًا لإنتاج أرشيفنا المضغوط ، إصدارات حديثة من جنو قطران دعم ضغط gzip و bzip2 مباشرة باستخدام ملف z و j الخيارات ، على التوالي. باستخدام المثال السابق كأساس ، يمكننا تبسيطه بهذه الطريقة:



[me @ linuxbox ~] $ اعثر على الملعب -اسم 'file-A' | tar czf playground.tgz -T -

[me @ linuxbox ~] $ اعثر على الملعب -اسم 'file-A' | tar czf playground.tgz -T -


إذا أردنا إنشاء أرشيف مضغوط بتنسيق bzip2 بدلاً من ذلك ، كان بإمكاننا القيام بذلك:



[me @ linuxbox ~] $ اعثر على الملعب -اسم 'file-A' | tar cjf playground.tbz -T -

[me @ linuxbox ~] $ اعثر على الملعب -اسم 'file-A' | tar cjf playground.tbz -T -


ببساطة عن طريق تغيير خيار الضغط من z إلى j (وتغيير امتداد ملف الإخراج إلى .tbz للإشارة إلى ملف مضغوط bzip2) قمنا بتمكين ضغط bzip2.

استخدام آخر مثير للاهتمام للمدخلات والمخرجات القياسية مع قطران يتضمن الأمر نقل الملفات بين الأنظمة عبر الشبكة. تخيل أن لدينا جهازين يشغّلان نظامًا شبيهًا بـ Unix مجهّزين بـ قطران و سه. في مثل هذا السيناريو ، يمكننا نقل دليل من نظام بعيد (اسمه جهاز التحكم عن بعد في هذا المثال) إلى نظامنا المحلي:



[me @ linuxbox ~] $ mkdir عن بعد الاشياء

[me @ linuxbox ~] $ الاقراص عن بعد الاشياء

[me @ linuxbox remote-stuff] $ ssh remote-sys 'tar cf - المستندات' | tar xf -

me @ remote-sys's password: [me @ linuxbox remote-stuff] $ ls الوثائق

[me @ linuxbox ~] $ mkdir عن بعد الاشياء

[me @ linuxbox ~] $ الاقراص عن بعد الاشياء

[me @ linuxbox remote-stuff] $ ssh remote-sys 'tar cf - المستندات' | tar xf -

me @ remote-sys's password: [me @ linuxbox remote-stuff] $ ls الوثائق


هنا تمكنا من نسخ دليل باسم الوثائق من النظام البعيد إعادة النظام إلى دليل داخل الدليل المسمى بعيد الاشياء على النظام المحلي. كيف وصلنا قيام بذلك؟ أولاً ، أطلقنا برنامج قطران برنامج على النظام البعيد باستخدام سه. سوف تتذكر ذلك سه يسمح لنا بتنفيذ برنامج عن بعد على كمبيوتر يعمل بشبكة و "رؤية" النتائج على النظام المحلي-الناتج القياسي الموالي-


duced على النظام البعيد إلى النظام المحلي للعرض. يمكننا الاستفادة من هذا من خلال وجود قطران إنشاء أرشيف (ملف c mode) وإرساله إلى الإخراج القياسي ، بدلاً من ملف (ملف f الخيار مع وسيطة الشرطة) ، وبالتالي نقل الأرشيف عبر النفق المشفر الذي يوفره سه للنظام المحلي. على النظام المحلي ، نقوم بالتنفيذ قطران وجعله يوسع أرشيفًا (ملف x mode) يتم توفيره من الإدخال القياسي (مرة أخرى ، ملف f الخيار مع وسيطة الشرطة).


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: