Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

أرشفة و ضغط الملفات في لينكس

  • أهمية ضغط الملفات
  • أداة أرشفة و ضغط الملفات في لينكس
  • تحضير الملفات التي سيتم أرشفتها
  • إنشاء أرشيف غير مضغوط في لينكس
  • أرشفة مجلدات و ملفات متفرقة معاً في لينكس
  • إنشاء أرشيف مضغوط في لينكس
  • فك محتوى الأرشيف الغير مضغوط في لينكس
  • فك محتوى الأرشيف المضغوط في لينكس

أهمية ضغط الملفات

عند الحاجة إلى تخزين أو نقل الملفات من جهاز إلى آخر فإنه علينا مراعات المساحة التي يتطلبها تخزينها و المدة التي يستغرقها نقلها حيث أنه كلما كان عددها و حجمها أكبر كلما استغرقت مساحة تخزين و مدة نقل أكبر.

يمكنك ضغط ملفاتك القديمة التي نادراً ما تستعملها حتى توفر مساحة أكثر في القرص الصلب.


مفهوم ضغط الملفات

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

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


مفهوم فك ضغط الملفات

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

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

أداة أرشفة و ضغط الملفات في لينكس

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

tar [options] [archive-file] [files-and-folders-to-be-datad]
  • [options] - يقصد بها الباراميترات الإختيارية التي يمكنك تمريرها للأمر.
  • [archive-file] - إسم الأرشيف المراد إنشاؤه أو استرداد الملفات و المجلدات الموجودة فيه.
  • [files-and-folders-to-be-datad] - مسار كل ملف أو مجلد مراد وضعه في الأرشيف مع الإشارة إلى أنه يجب وضع مسافة فارغة بين كل مسارين.

فيما يلي الباراميترات التي يمكنك استخدامها مع هذا الأمر لتحديد كيف ستتم عملية الأرشفة أو عملية استرداد الملفات الأصلية.

الباراميتر و استخدامه
-c يستعمل هذا الباراميتر لإنشاء ( Create ) أرشيف جديد.
-x يستعمل هذا الباراميتر لاستخراج ( Extract ) المجلدات و الملفات الموجودة في الأرشيف.
-t يستعمل هذا الباراميتر لعرض ( Display ) أسماء المجلدات و الملفات الموجودة في الأرشيف.
-f يستعمل هذا الباراميتر لتحديد إسم الأرشيف المراد إنشاؤه، إستخراج أو عرض محتواه.
منطقياً، يجب استعمال هذا الباراميتر عند استعمال الباراميتر -c أو الباراميتر -x أو الباراميتر -t.
-v يستعمل هذا الباراميتر لعرض التفاصيل ( Verbox ) التي تحدث عند تنفيذ الأمر، أي أسماء المجلدات و الملفات التي تم التعامل معها.
-z يستعمل هذا الباراميتر لضغط الملفات بواسطة gzip بحيث ينتج عن ذلك أرشيف إمتداده .tgz أو .tar.gz
-j يستعمل هذا الباراميتر لضغط الملفات بواسطة bzip بحيث ينتج عن ذلك أرشيف إمتداده .tbz2 أو .tar.bz2
-J يستعمل هذا الباراميتر لضغط الملفات بواسطة xz بحيث ينتج عن ذلك أرشيف إمتداده .tar.xz

إسم الأداة tar هو اختصار لعبارة ملف أرشيفي ( Tap Archive ).

تحضير الملفات التي سيتم أرشفتها

لتطبيق الأمثلة التي وضعناها في هذا الدرس، قم بإنشاء مجلد إسمه data و بداخله قم بإنشاء مجلد إسمه folder بالإضافة إلى ثلاث ملفات إسمها file1 و file2 و file3 كما في الصورة التالية.

الملفات و المجلدات التي سيت أرشفتها

إنشاء أرشيف غير مضغوط في لينكس

1- فيما يلي قمنا باستخدام الأمر tar لإنشاء أرشيف إسمه data.tar غير مضغوط وضعنا فيه المجلد data.

Linux Terminal

root@fedora:~$ tar cvf data.tar data
data/
data/file1
data/file2
data/file3
data/folder/
  • الباراميتر c إستعملناه لإنشاء الأرشيف.
  • الباراميتر v إستعملناه لعرض أسماء المجلدات و الملفات التي سيتم تضمينها في الأرشيف.
  • الباراميتر f إستعملناه لتحدد إسم الأرشيف الذي نريد إنشاؤه.

2- إذا قمت بعرض الملفات و المجلدات الموجودة فإنك ستجد الأرشيف data.tar تم إنشاؤه بجانب المجلد data.

Linux Terminal

root@fedora:~$ ls
data.tar data

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

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

أرشفة مجلدات و ملفات متفرقة معاً في لينكس

1- فيما يلي قمنا باستخدام الأمر tar لإنشاء أرشيف غير مضغوط إسمه data-specified.tar وضعنا فيه الملف file1 و الملف file2 و المجلد folder فقط.

Linux Terminal

root@fedora:~$ tar cvf data-specified.tar data/file1 data/file2 data/folder
data/file1
data/file2
data/folder/

2- إذا قمت بعرض الملفات و المجلدات الموجودة فإنك ستجد الأرشيف data-specified.tar أصبح موجوداً كما يلي.

Linux Terminal

root@fedora:~$ ls
data-specified.tar data.tar data

إنشاء أرشيف مضغوط في لينكس

1- فيما يلي قمنا باستخدام الأمر tar لإنشاء أرشيف مضغوط من المجلد data بصيغة gzip و إسمه data.tar.gz.

Linux Terminal

root@fedora:~$ tar czvf data.tar.gz data
data/
data/file1
data/file2
data/file3
data/folder/
  • الباراميتر c إستعملناه لإنشاء الأرشيف.
  • الباراميتر z إستعملناه لضغط الأرشيف بواسطة أداة gzip.
  • الباراميتر v إستعملناه لعرض أسماء المجلدات و الملفات التي سيتم تضمينها في الأرشيف.
  • الباراميتر f إستعملناه لتحدد إسم الأرشيف الذي نريد إنشاؤه.

صيغة الأرشيف المضغوط جعلناها .tar.gz و ذلك لأن .tar تشير إلى أنه عبارة عن أرشيف و .gz توضح أنه تم ضغطه بواسطة أداة gzip.

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


2- إذا قمت الآن بعرض الملفات و المجلدات الموجودة فإنك ستجد الأرشيف data.tar.gz أصبح موجوداً كما يلي.

Linux Terminal

root@fedora:~$ ls
data-specified.tar data.tar data.tar.gz data

فك محتوى الأرشيف الغير مضغوط في لينكس

في البداية، قبل استخراج محتوى الأرشيف، قم بحذف المجلد data الذي فيه نفس محتوى الأرشيف حتى تفهم ما يحصل بدقة.

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


التحضير لاستخراج محتوى الأرشيف

1- يمكنك استخدام الأمر rm -r كما يلي لحذف المجلد data.

Linux Terminal

root@fedora:~$ rm -r data

2- إذا قمت الآن بعرض المجلدات و الملفات الموجودة باستخدام الأمر ls فإنك لن تجد ضمنها المجلد data.

Linux Terminal

root@fedora:~$ ls
data-specified.tar data.tar data.tar.gz

إستخراج محتوى الأرشيف

1- فيما يلي قمنا باستخدام الأمر tar لاستخراج المحتوى الموجود في الأرشيف الغير مضغوط data.tar.

Linux Terminal

root@fedora:~$ tar xvf data.tar
data/
data/file1
data/file2
data/file3
data/folder/
  • الباراميتر x إستعملناه لاستخراج المحتوى من الأرشيف.
  • الباراميتر v إستعملناه لعرض أسماء المجلدات و الملفات التي تم إخراجها تباعاً من الأرشيف.
  • الباراميتر f إستعملناه لتحدد إسم الأرشيف الذي نريد استخراج محتواه.

2- إذا قمت الآن بعرض المجلدات و الملفات الموجودة باستخدام الأمر ls فإنك ستجد المجلد data قد عاد كما كان.

Linux Terminal

root@fedora:~$ ls
data-specified.tar data.tar data.tar.gz data

فك محتوى الأرشيف المضغوط في لينكس

في البداية، قبل استخراج محتوى الأرشيف، قم بحذف المجلد data كما فعلنا في الفقرة السابقة حتى تلاحظ الفرق.

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


إستخراج محتوى الأرشيف

1- فيما يلي قمنا باستخدام الأمر tar لاستخراج المحتوى الموجود في الأرشيف لبمضغوط data.tar.gz.

Linux Terminal

root@fedora:~$ tar xzvf data.tar.gz
data/
data/file1
data/file2
data/file3
data/folder/
  • الباراميتر x إستعملناه لاستخراج المحتوى من الأرشيف.
  • الباراميتر z إستعملناه لفك ضغط الأرشيف بواسطة أداة gzip.
  • الباراميتر v إستعملناه لعرض أسماء المجلدات و الملفات التي تم إخراجها تباعاً من الأرشيف.
  • الباراميتر f إستعملناه لتحدد إسم الأرشيف الذي نريد استخراج محتواه.

2- إذا قمت الآن بعرض المجلدات و الملفات الموجودة باستخدام الأمر ls فإنك ستجد المجلد data قد عاد كما كان.

Linux Terminal

root@fedora:~$ ls
data-specified.tar data.tar data.tar.gz data