دليل شامل لأمر tar في لينكس

نظرة عامة

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

المفهوم الأساسي لـ tar: الفرق بين التجميع البسيط (الأرشفة) والضغط

لتنفيذ تدريب عملي على أرشفة tar، نقوم بإنشاء دليل تجريبي وملفات نصية كمثال.

mkdir -p ~/tar-demo/sample && echo ‘Hello Linux 1’ > ~/tar-demo/sample/file1.txt && echo ‘Hello Linux 2’ > ~/tar-demo/sample/file2.txt

يُستخدم الأمر tar لتجميع ملفات ودلائل متعددة في ملف أرشيف واحد أو استخراجها منه.
نقوم بدمج الخيارات -c و -v و -f مع الخيار -C لتجميع الدليل sample وإنشاء ملف الأرشيف archive.tar.
⚙️ [الخيارات الرئيسية]

-c : إنشاء ملف أرشيف جديد.
-x : فك ضغط محتويات ملف الأرشيف أو استخراجها.
-t : عرض قائمة الملفات الموجودة داخل الأرشيف.
-v : عرض تفاصيل عملية إنشاء أو فك الأرشيف على الشاشة بالتفصيل.
-f : تحديد اسم ملف الأرشيف المطلوب التعامل معه.
-z : الضغط أو فك الضغط باستخدام خوارزمية gzip (.tar.gz).
-j : الضغط أو فك الضغط باستخدام خوارزمية bzip2 (.tar.bz2).
-J : الضغط أو فك الضغط باستخدام خوارزمية xz (.tar.xz).
-C : تحديد مسار الدليل المستهدف لتنفيذ عملية الأرشفة.

tar -cvf ~/tar-demo/archive.tar -C ~/tar-demo sample

نتحقق من المعلومات التفصيلية لملف archive.tar المنشأ والدليل الأصلي باستخدام الأمر ls -lh.
نظراً لأن هذا الملف هو مجرد أرشيف يجمع الملفات معاً، فإنه لم يخضع لعملية ضغط لتقليل الحجم.

ls -lh ~/tar-demo

خيارات الضغط العملية: الجمع بين استخدام gzip(-z) و bzip2(-j)

نقوم بإضافة خيار الضغط gzip وهو -z لإنشاء ملف .tar.gz مضغوط ومؤرشف في الوقت نفسه من الدليل sample.
هذه هي الطريقة الأكثر شيوعاً في بيئات العمل نظراً لسرعتها العالية في الضغط ومعدل الضغط المقبول الذي توفره.

tar -czvf ~/tar-demo/archive.tar.gz -C ~/tar-demo sample

نقوم بتحديد خيار الضغط bzip2 وهو -j لإنشاء أرشيف .tar.bz2 يتم تجميعه وضغطه في الوقت ذاته من الدليل sample.
تستغرق هذه العملية وقتاً أطول مقارنة بـ gzip، لكنها تحقق عادةً نسبة ضغط أعلى.

tar -cjvf ~/tar-demo/archive.tar.bz2 -C ~/tar-demo sample

للتحقق من قائمة ملفات الأرشيف المنشأة وأحجامها، نقوم بتنفيذ الأمر ls -lh ~/tar-demo/*.tar*.
بالمقارنة مع الأرشيف العادي غير المضغوط (archive.tar)، يمكنك ملاحظة الفرق في أحجام الملفات التي طُبقت عليها خوارزميات الضغط.

ls -lh ~/tar-demo/.tar

معاينة قائمة الملفات داخل الأرشيف (-t) والتحقق الآمن

للتحقق المسبق من بنية الملفات ومسارات الدلائل داخل الأرشيف قبل فك الضغط، نقوم بتشغيل الأمر tar -tvf ~/tar-demo/archive.tar.gz.
عند دمج الخيار -t مع خيار عرض التفاصيل -v، يمكنك التأكد بأمان مسبقاً من أذونات الملفات، والمالك، والحجم، وهيكل الدلائل دون الحاجة إلى فك الضغط الفعلي.

tar -tvf ~/tar-demo/archive.tar.gz

استخراج الملفات بأمان في المسار المطلوب (-x و -C)

لإنشاء دليل مخصص لفك الضغط بأمان، نقوم بتشغيل الأمر mkdir -p ~/tar-demo/extracted.

mkdir -p ~/tar-demo/extracted

باستخدام الخيارين -x و -C، يتم فك ضغط ملف الأرشيف في المسار المحدد دون التأثير على دليل العمل الحالي.
يتم فك ضغط gzip باستخدام الخيار -z، مع التحقق من قائمة الملفات المستخرجة في الوقت الفعلي باستخدام الخيار -v.

tar -xzvf ~/tar-demo/archive.tar.gz -C ~/tar-demo/extracted

للتحقق مما إذا كانت الملفات داخل الأرشيف قد استُخرجت بشكل صحيح في المسار المحدد، نقوم بتنفيذ الأمر ls -la ~/tar-demo/extracted/sample.
من خلال النتائج المعروضة، يمكنك التأكد من استعادة ملكية الملفات وأذوناتها بالكامل كما كانت عليه وقت إنشاء الأرشيف.

ls -la ~/tar-demo/extracted/sample

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