غير متصل
-- ( كيف تقوم بضغط واستخراج (أرشفة) الملفات من سطر الأومر ) --
يستخدم الأمر "tar" غالبًا فى نظام لينكس لإنشاء ملفات الأرشفة ذات الإمتداد tar.gz أو tgz وتدعى ايضًا "tarballs"
هذا الأمر يحتوي على الكثير من خيارات الأستخدام، لكن كل ما تحتاج تذكّر البعض منها لإنشاء ملفات الأرشفة مع الأمر "tar"
وبالطبع الأمر ايضًا قادر على فك ضغط الملفات المؤرشفة.
= ( ضغط ملف أو مجلد ) =
نستخدم الصيغة التالية لضغط مجلد أو ملف
كود:
tar -czvf name-of-archive.tar.gz /path/to/directory-or-file
== ( شرح الأمر ) ==
tar
هذا هو أمر الضغط أو الأرشفة ( الذي نتحدث عن استخدامه بالموضوع )
-
علامة الشرطة (أو علامة الناقص) تُضع غالبًا بعد الأمر، لتُخبر الأمر بالخيارات المراد تنفيذها والتي هي هذة "czvf"
czvf
حرف الـ c يعنى إنشاء أرشيف (Create an archive)
حرف الـ z يعنى أضغط الملف بامتداد الضغط gzip من ( Compress the archive with gzip)
حرف الـ v لعرض تقدم عملية الضغط والأرشفة على الطرفية (verbose)
حرف الـ f يمكّنك من أختيار اسم لملف الإرشيف الناتج ( filename of the archive)
name-of-archive.tar.gz
هذا هو اسم ملف الأرشيف الناتج، وتستطيع استبداله بالاسم الذي ترغب به
path/to/directory-or-file/
هذا هو الموقع او المسار المتواجد فيه الملف أو الملجد المراد ضغطة
ونستبدلهُ حسب مكان أو مسار الملف الموجود بالجهار
= ( توضيح أخر للأمر ) =
tar -czvf name-of-archive.tar.gz /path/to/directory-or-file
التي باللون الأحمر ثابتة
التي باللون الأزرق متغيرات
= ( مثال للتوضيح ) =
الآن لنطبق الأمر على ملفٍ ما لنرى النتيجة
الآن لدي مجلد باسم "ISO" بمجلد المنزل (Home) وأريد ضغط هذا الملف أو أرشفتة باسم ''Mint"
أُنفذ الأمر التالي:
كود:
tar -czvf Mint.tar.gz ISO
ملاحظة: أمر "ls" الذي بالصورة استخدمته لمجرد الشرح والتوضيح فقط وليس لهُ علاقة بضغط الملف
وهو أمر لعرض محتويات مجلدٍ ما على الطرفية (سطر الأوامر)
لاحظ أولاً استخدمة الأمر ls لعرض محتويات مجلد المنزل، ولا يوجد به الملف المضغوط "Mint.tar.gz" بعد
ثم طبقة أمر الضغط "tar -czvf Mint.tar.gz ISO"
ثم بدأت عملية الضغط وتتم عرضها على شاشة الطرفية وايضًا عرض محتويات المجلد الذي يتم ضغطة كما ترى
ثم بعد إنتهاء الأمر من عملية الضغط، قمت بعرض محتويات مجلد المنزل مرة أخري بالأمر ls لأرى النتيجة!
وبالفعل تم إنشاء الملف المضغوط "Mint.tar.gz" كما هو واضح باللون الأحمر
حسنًا، هذا بالنسبة لمجلد موجود على نفس المسار (في مجلد المنزل)
طيب لو عندي صورة (أو عدة صورة) باسم "monner" فى داخل مجلد الصور Pictures
وأريد تطبيق الأمر عليها، هل ينجح الأمر؟
لنرى النتيجة!
كما تلاحظ بالصورة لم ينجح الأمر،لماذا؟
لأن الملف "monner.png" الذي هو الصورة ليس موجود على نفس المسار أو المكان الذي نُفذ به الأمر و الذي هو مجلد المنزل (Home)
إنما هو موجود على مسار أخر، والذي هو مجلد الصور (Pictures)
ملاحظة : عليك أن تعرف عندما يتم فتح الطرفية (سطر الأوامر) دائمًا وتلقائيًا يكون مكان العمل أو المسار الذي تعمل علية أو تُنفذ به الأوامر هو المجلد المنزل (بمعنى الطرفية تفتح افتراضيًا على مجلد المنزل Home )
إذًا، لإنجاح الأمر أقوم بإخبار الطرفية أو الأمر "tar" بالمسار الذي توجد به الصورة، بالأمر التالي:
كود:
tar -czvf Mint.tar.gz /home/monner/Pictures/monner.png
هل رأيت! لقد نجح الأمر
حسنًا، هل من الممكن إنجاح الأمر قبل السابق، الذي فشلت به عملية الضغط؟
نعم، هذا ممكن
كيف ذلك؟
بالإنتقال أو نقل العمل وتنفيذ الأوامر من مسار المجلد المنزل (Home) إلى مسار ملجد الصور (Pictures) وتنفيذ الأمر هناك، شاهد
أولاً، قمت باستعراض محتويات مجلد المنزل (Home) بالأمر ls ثم انتقلت من مسار مجلد المنزل (Home) إلى ملجد الصور (Pictures) بالأمر cd وبالتالي نقلت العمل و عملية الضغط إلى هناك وأصحبت على نفس المسار المتواجد به الملف أو الصورة "monner.png"
ثم قمت باستعراض محتويات مجلد الصور (Pictures) بالأمر ls وكما تلاحظ موجود فيه الصورة "monner.png" (التي تظهر باللون الأخضر على الطرفية)
ثم نفذت أمر الضغط
ثم قمت باستعراض محتويات مجلد الصور مرة أخري، وبالفعل تم إنشاء الأرشيف باسم Mint.tar.gz كما هو واضح باللون الأحمر الأمر على الطرفية
هل نستطيع من ضغط أو أرشفة ملفات عدة متواجدة بمسارات مختلفة؟
نعم، هذا ممكن
الآن لدي ملف المذكرة "'sha256sum.txt" الموجود بمجلد ISO
وملف الصورة "monner.png" الموجود بمجلد الصور (Pictures)
ومجلد Music الموجود في مجلد المنزل (Home)
ونريد ضغط هذة الملفات الثلاث معًا في أرشيف باسم "Tux"
نفعل ذلك بالأمر التالي:
كود:
tar -czvf Tux.tar.gz Music /home/monner/ISO/sha256sum.txt /home/monner/Pictures/monner.png
كما تلاحظ، نجح الأمر وتم إنشاء الملف المضغوط "Tux.tar.gz" كما هو واضح باللون الأحمر
كل ما فعلنا هو كتابة أمر الضغط وتحديد مسار كل ملف
= ( استخدام امتداد الضغط bzip2 ) =
بينما امتداد ضغط gzip هي الأكثر استخدامًا في ضغط و أرشفة الملفات
الأمر tar ايضًا يدعم إنشاء الملفات المضغوطة بامتداد الضغط bzip2
لفعل ذلك عليك فقط استبدال حرف z في الخيارات التي بعد الشرطة هذة "czvf" بحرف j هكذا "cjvf"
شاهد الأمر التالي:
كود:
tar -cjvf Movies.tar.bz2 Videos
كما تلاحظ تم ضغط مجلد الفيديو (Videos) بامتداد tar.bz2 باسم "Movies" كما هو واضح باللون الأحمر
= ( استخراج الملفات من الملف المضغوط ) =
لفك ضغط الملفات أو استخراج الملفات
بكل بساطة أُكتب الأمر tar ثم استبدل حرف الـ c من هذة الخيارات "czvf" الذي يعني إنشاء أرشيف (Create an archive) بحرف الـ x الذي يمثل استخراج الملفات (extract an archive)
حسنًا، ماذا لو نريد استخراج الملفات إلى مجلد محدد
نستخدم الخيار C -
مثلاً، أُريد استخراج ملفات الملف المضغوط Tux.tar.gz إلى ملجد Public
أُنفذ الأمر التالي:
كود:
tar -xzvf Tux.tar.gz -C Public
شرح ما حدث بالصورة أعلاه
قمت باستعراض مجللد المنزل بالأمر ls
ثم دخلت إلى مجلد Public بالأمر cd
ثم استعرضت محتويات مجلد public بالأمر ls ولم تُعرض أي نتيجة! هذا يعني أن المجلد فارغ ليس به ملفات
ثم قمب بالرجوع للخلف لمجلد المنزل بالأمر cd
ثم قمت بفك ضغط الملف Tux.tar.gz بداخل مجلد Public
ثم بعد ذلك قمت باستخدام الأمر cd و ls مرات عدة لأُبين لك أنهُ تم استخراج الملفات إلى مجلد Public
كان هذا بعض من استخدامات الأمر tar
و كما قلنا سابقًا الأمر لهُ استخدامات كثيرة جداً تستطيع الأطلاع عليها من سطر الأوامر، بالأمر
كود:
info tar
أو الأمر
كود:
man tar
كانت هذة ترجمة مع بعض الإيضاح و الشرح لمقالة
How to Compress and Extract Files Using the tar Command on Linux
تستطيع الأطلاع على الموضوع لمزيد من الملعلومات
التعديل الأخير بواسطة المشرف: