انشاء نسخة احتياطية للملفات باستخدام الامر tar

بسم الله الرحمان الرحيم


موضوعنا اليوم يتمحور حول كيفية استعمال الأمرTar-(tape archive) لانشاء أرشيفات لملفات مع طرح امثلة بسيطة.
تتجلى اهمية هذا الامر في عمل نسخ احتياطية لملفات النظام و كذلك للملفات الشخصية،‫ وذلك لدواعي عدة منها الحفاظ على الملفات بطريقة آمنة أو نقلها  من جهاز لآخر.

بالنسبة لكيفية الاستعمال و التثبيت فالبرنامج ياتي افتراضيا في جل التوزيعات ان لم نقل كلها، وفي الفقرة التالية سنبين كيفية استخدام البرنامج.

فك ضغط أرشيف file.tar.gz

أشهر أمر لفك الضغط  :
$ tar -xvzf tarfile.tar.gz
الخصائص المستعملة في الامر تعني :
x - استخراج الملفات
v -  طباعة أسماء الملفات كما يتم استخراج واحدا تلو الآخر وهي خاصية اختيارية
z - تصفية أرشيف من خلال 'gzip'
f -  استخدام ارشيف ملف أو جهاز

فك الضغط أرشيف file.tar.bz2

$ tar -xvjf archivefile.tar.bz2
j - تصفية أرشيف من خلال BZIP2 المستخدم لضغط الملفات .bz2

فك ضغط أرشيف في مسار معين

$ tar -xvzf abc.tar.gz -C /home/extra

استخراج فقط ملف معين من أرشيف مضغوط

$ tar -xz -f abc.tar.gz "./usr/soood.txt"
استخراج ملفين أو 
$ tar -xv -f abc.tar.gz "./usr/soood.txt" "/home/sin/cod.html"

استخراج عدد من الملفات باستخدام خاصية --wildcards 

$ tar -xv -f abd.tar.gz --wildcards "*.txt"
في الامر السابق قمنا باستخراج فقط الملفات ذات الامتداد .txt

البحث في الأرشيف بدون فك الضغط

$ tar -tz -f abc.tar.gz
./new/
./new/cde.txt
./new/subdir/
./new/subdir/in.txt
./new/abc.txt ...
اذا كان الأرشيف ذو امتداد tar.bz2/bzip يجب اضافة خاصية -j

إنشاء ملف tar عادي

$ tar -cvf abc.tar ./files
انشاء أرشيف tar مضغوط فقط قم باضافة خاصية z أو j حسب نوع الضغط الذي تريده
$ tar -cvzf abc.tar.gz ./files

انشاء أرشيف tar مع تأكيد اختيار الملفات التي ستتضمنه

$ tar -czw -f abc.tar.gz ./files/*

add ‘./new/abc.txt’?y
add ‘./new/cde.txt’?y
add ‘./new/newfile.txt’?n
add ‘./new/subdir’?y
add ‘./new/subdir/in.txt’?n

اضافة ملفات لأرشيف tar موجود

$ tar -rv -f abc.tar new.text

 لا يمكن اضافة ملف لملف tar مضغوط، فقط الأرشيف العادي .tar

اضافة ملفات لملف مضغوط (tar.gz/tar.bz2)، يمكن ذلك فقط باستخدام الأمر gunzip لإلغاء ضغط الأرشيف، بعدها إضافة ملف لأرشفة والضغط عليه مرة أخرى.

$ gunzip archive.tar.gz
$ tar -rf archive.tar ./path/to/file
$ gzip archive.tar

لعمل نسخة احتياطية لملف ما

$ tar -cvz -f archive-$(date +%Ym%d).tar.gz ./files
سيقوم الامر السالف بعمل نسخة احتياطية للمجلد /files بجميع ملفاته و ستتم تسميته حسب تاريخ إنشائه 'archive-20170211.tar.gz' .




أتمنى ان اكون قد أفدتكم قدر المستطاع، شكرا على القراءة، بالتوفيق .


الإبتساماتإخفاء