المبسط في أوامر لينكس الأساسية (الجزء الثالث)، ارشفة وضغط الملفات

المبسط في أوامر لينكس الأساسية (الجزء الثالث)، ارشفة وضغط الملفات - ساحة التقنية
برامج
+ -

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

الأمر المخصص من شركة ريد هات للقيام بعمليه الأرشفة

#tar


بداية ما هو الفرق بين عملية الأرشفة وضغط الملفات؟

يخلط الكثير من المستخدمين في عمليه الأرشفة، فالكثير يعتبرونها تؤدي لضغط الملفات، الا ان هذا المفهوم خاطئ، فعمليه الأرشفة لا تقلل المساحة، بل تقوم بتجميع مجموعه من الملفات بداخل ملف واحد، على سبيل المثل لديك الملف file1, file2, file3 وتريد ارشفتهم في ملف واحد مثلال archive.tar، بينما ضغط الملفات يؤدي الى تقليل المساحة.

باستخدام الأمر tar يمكن جمع مجموعه من الملفات بداخل ملف واحد، ولضغطها يمكن استخدام gzip, bzip2, xs.


لإستخدام الأمر tar يوجد مجموعه من الخيارات الأخرى المطلوبه وهي:

cلإنشاء ارشيف جديد.
tلإظهار الملفات المؤرشفه بداخل ارشيف معين.
x

لإستخراج الملفات المؤرشفة بداخل ارشيف ما.

ومن الخيارات الأكثر أستخداما (f ويستخدم لتحديد اسم الأرشيف الذي سنعمل عليه).


ملاحظة: قبل انشاء ارشيف جديد، يجب التأكد انه لا يوجد ارشيف أخر بنفس الإسم في نفس المكان الذي تود انشاء الأرشيف به، وذلك لأن الأمر tar سيقوم بحذف الأرشيف القديم.


للقيام بعملية الأرشيف الخيار الأول هو c ثم f ثم مسافة ثم اسم الأرشيف.

لفرض ان لدينا ملفات file1, file2, file3 ونريد عمل ارشيف لهم، يكون الأمر كالتالي:-

#tarcf archive.tar file1 file2 file3

ملاحظة: الملفات التي يريد المستخدم عمل ارشيف لها، يجب ان يكون للمستخدم صلاحية القراءة عليها، فمثلا اذا اراد عمل ارشيف لـ المجلد etc فانه يجب ان يكون بصلاحيات root.


قراءة الملفات داخل ارشيف ما، دون استخراجها؟

يتم قراءة الملفات المؤرشفة ايضا، بإستخدام الأمر tar لكن باستخدام الخيار t، ففي عمليه الأرشفة تم استخدام الخيار c، لكن في القراءة يجب استخدام الخيار t ثم f ثم اسم الملف، ليكون الأمر بالشكل التالي:-

#tar tf archive.tar


استخراج الملفات المؤرشفة؟

كما نعلم جميعنا، ان استخراج الملفات المؤرشفة، يجب ان يكون داخل مجلد فارغ، وذلك حتى يحصل هناك استبدال لملفات معينة تحمل نفس الإسم.

ملاحظة: اذا تم استخراج الملفات بصلاحية root فان الأمر tar يبقي صلاحية user وال group على الملفات.

لإستخراج الملفات المؤرشفة يتم استخدام الخيار x، ليكون الأمر كالتالي:

#mkdir backup
#cd backup
#tar xf archive.tar

في الأمر أعلاه، تم استخدام الأمر mkdir لإنشاء مجلد جديد بإسم backup، والأمر الثاني تم الدخول الى هذا المجلد، وفي الأمر الثالث تمت عمليه الإستخراج، مع العلم انه في المثال اعلاه فرضنا ان الملف المؤرشف موجود بنفس المجلد backup.


ضغط الملفات في نظام لينكس.

يوجد 3 طرق مختلفه لضغط الملفات بإستخدام الأمر tar وهي:

  • gzip : الأقدم والأكثر استخداما.
  • bzip2 : يقوم بضغط الملفات أكثر من الأمر gzip لكن استخدامه أقل، ويأخذ وقت أكثر.
  • xz : جديد لكن يؤدي لضغط بحجم أكبر بالتالي حجم أقل، لكن يأخذ وقت أكثر.


ولإنشاء ملف مضغوط باستخدام الأمر tar يجب استخدام أحد الخيارات التالية:

zيستخدام اذا كان المستخدم يريد اعتماد طريقة gzip ليكون اسم الملف الناتج كما يلي (filename.tar.gz او filename.tgz)
jيستخدم اذا كان المستخدم يريد اعتماد طريقة bzip2 ليكون اسم الملف كما يلي (filename.tar.bz2)
Jيستخدم مع xz ليكون اسم الملف الناتج كالتالي (filename.tar.xz)


لفرض اننا نريد انشاء ملف مضغوط للمجلد etc كيف يمكن ان يكون أمر الضغط؟

لإنشاء ملف مضغوط باستخدام gzip يكون الأمر كالتالي:-

#tar czf backup.tar.gz /etc

ولإنشاء ملف مضغوط باستخدام bz2 يكون الأمر كالتالي:-

#tar cjf backup.tar.bz2 /etc

ولإنشاء ملف مضغوط باستخدام xz يكون الأمر كالتالي:-

#tar cJf backup.tar.xz /etc


كيف يمكن استخراج الملفات المضغوطه في لينكس؟

كما هو في الملفات المؤرشفة، في الملفات المضغوطه يتم ايضا استخدام الخيار x بدلا من c الذي تم استخدامه في عمليه الضغط، مع الأخذ بعين الإعتبار انه يجب بداية تحديد المكان الذي تريد به فك ضغط الملفات المضغوطه.

لفرض ان لدي ملف مضغوط باسم backup واريد استخراج هذه الملفات بداخل /tmp/backup، يتم ذلك باستخدام الطرق الثالثه لتكون الأوامر كما يلي:

[[email protected]]#mkdir /tmp/backup
[[email protected]]#cd /tmp/backup
[[email protected] backup]#tar xzf backup.tar.gz


[[email protected]]#mkdir /tmp/backup
[[email protected]]#cd /tmp/backup
[[email protected] backup]#tar xjf backup.tar.bz2


[[email protected]]#mkdir /tmp/backup
[[email protected]]#cd /tmp/backup
[[email protected] backup]#tar xJf backup.tar.xz


اتصل بنا
شكرا لكم، تم ارسال الرسالة بنجاح، سيتم الرد عليكم قريبا