كيفية استخدام تار في لينكس (أوبونتو، سنت أو إس، ريد هات)

استخدام تار في لينكس (أوبونتو 18.04 / 20.04 / 22.04 ، سنت أو إس7 / 8، ريد هات 7)

Tar هو أداة لأرشفة وضغط الملفات في لينكس وأنظمة التشغيل الشبيهة بيونكس. يتيح لك تجميع ملفات ودلائل متعددة في ملف أرشيف .tar واحد، مع الحفاظ على أذونات وهياكل الدلائل.

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

نظرة عامة على Tar

يعني Tar أرشيف الشريط. استُخدم في الأصل لأرشفة البيانات على محركات الأشرطة للتخزين طويل الأمد. بينما لا يزال بإمكان tar كتابة الأرشيفات إلى محركات الأشرطة ، إلا أنه يُستخدم بشكل أكثر شيوعًا مع الملفات العادية والأنابيب اليوم.

بعض الحقائق الرئيسية حول tar:

  • تجمع أرشيفات tar ملفات ودلائل متعددة في ملف .tar واحد.
  • يمكن ضغط الأرشيفات باستخدام gzip أو bzip2 لتوفير المساحة.
  • يحافظ Tar على الأذونات والملكية وأوقات تعديل الملفات ، إلخ.
  • يمكن أن تمتد الأرشيفات عبر أشرطة / مجلدات متعددة (للنسخ الاحتياطي على محركات الأشرطة).
  • Tar موحد – يمكن استخراج الأرشيفات التي تم إنشاؤها على نظام UNIX واحد على أي نظام UNIX متوافق آخر.
  • Tar أداة قديمة جدًا موجودة على كل منصة لينكس ويونكس. لها عقود من الاستخدام الواسع النطاق مما يجعلها مستقرة وموثوقة.

دعونا نراجع بعض المصطلحات الشائعة المتعلقة بـ tar:

  • الأرشيف – ملف .tar الذي يتم إنشاؤه عن طريق تجميع الملفات باستخدام tar. يحتوي هذا الملف على المحتوى المؤرشف. يمكن ضغط الأرشيفات باستخدام gzip/bzip2 التي يتم التعبير عنها من خلال امتدادات الملفات .tar.gz أو .tar.bz2.
  • حزمة – مرادف للأرشيف.
  • كرةقطران – كرة قطران هي مجرد طريقة أخرى للإشارة إلى ملف أرشيف .tar.gz أو .tar.bz2.
  • استخراج – عملية فك الأرشيف وكتابة الملفات المستخرجة على القرص.
  • الضغط – يدعم Tar الضغط الاختياري مع gzip أو bzip2 لتوفير المساحة. الأرشيفات المضغوطة لها امتدادات .tar.gz أو .tar.bz2.
  • إلحاق – إضافة ملفات إلى أرشيف موجود. لا يؤثر على المحتوى الحالي.
  • التتابع – دمج أرشيفين معًا من النهاية إلى النهاية.

الآن بعد أن فهمنا مصطلحات tar والأساسيات ، دعونا ننتقل إلى بعض أمثلة الاستخدام.

إنشاء الأرشيفات

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

  • -c – ينشئ أرشيفًا جديدًا.
  • -v – مخرجات مفصلة. يسرد الملفات التي تمت معالجتها.
  • -f <archive-name> – اسم ملف الإخراج.

على سبيل المثال:

$ tar -cvf archive.tar /path/to/folder 

سيقوم هذا بأرشفة المجلد المعطى بشكل متكرر داخل archive.tar. يمكنك تقديم مسارات ملف/مجلد متعددة لإضافة إدخالات متعددة:

$ tar -cvf archive.tar /path/one /path/two /path/three

لضغط الأرشيف باستخدام gzip ، استخدم -czvf بدلاً من -cvf فقط:

$ tar -czvf archive.tar.gz /path/to/folder

لضغط bzip2 ، استخدم -cjvf:

$ tar -cjvf archive.tar.bz2 /path/to/folder

يمكنك التحكم في الإخراج المفصل باستخدام -v. أسقطه لإخفاء قوائم الملفات:

$ tar -cf archive.tar /path/to/folder

عرض محتويات الأرشيف

لعرض الملفات الموجودة داخل أرشيف tar دون استخراجه ، استخدم:

$ tar -tf archive.tar

سيقوم -t بسرد المحتويات.

بالنسبة للأرشيفات المضغوطة ، تحتاج إلى إضافة علامة الضغط:

$ tar -tzf archive.tar.gz
$ tar -tjf archive.tar.bz2

استخراج الأرشيفات

لاستخراج أرشيف ، استخدم -xf:

$ tar -xf archive.tar

سيقوم هذا باستخراج محتويات archive.tar في الدليل الحالي مع الحفاظ على الأذونات والسمات.

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

$ tar -xzf archive.tar.gz
$ tar -xjf archive.tar.bz2

يمكنك استخراج إلى دليل محدد باستخدام -C:

$ tar -xf archive.tar -C /tmp/extract-here

سيقوم هذا باستخراج الأرشيف إلى /tmp/extract-here.

إلحاق الأرشيفات

يمكنك إلحاق ملفات/دلائل إلى أرشيف tar موجود باستخدام -rvf بدلاً من -cvf:

$ tar -rvf archive.tar /new/folder 

سيضيف هذا /new/folder بشكل متكرر إلى archive.tar دون التأثير على المحتوى الحالي.

تحديث الأرشيفات

لتحديث الملفات الموجودة في أرشيف أو إضافة ملفات جديدة ، استخدم -uvf:

$ tar -uvf archive.tar /path/to/update 

سيضيف هذا أي ملفات جديدة تحت /path/to/update ، ويستبدل أي ملفات موجودة في الأرشيف بالإصدارات المحدثة.

حذف من الأرشيفات

يتضمن حذف الملفات من أرشيفات tar إنشاء أرشيف جديد بدون تلك الملفات.

أولاً ، استخرج محتويات الأرشيف إلى موقع مؤقت:

$ mkdir /tmp/archive-temp
$ tar -xf archive.tar -C /tmp/archive-temp

ثم احذف الملف الذي تريد إزالته من المجلد المؤقت.

أخيرًا ، أنشئ أرشيفًا جديدًا من المجلد المؤقت:

$ tar -cf new-archive.tar /tmp/archive-temp

سيحتوي new-archive.tar الآن على محتويات الأرشيف باستثناء الملف المحذوف.

استبعاد الملفات/المسارات

لاستبعاد بعض الملفات/المسارات عند إنشاء أرشيف ، استخدم --exclude:

$ tar -cvf archive.tar /path --exclude=/path/to/exclude

سيمنع هذا /path/to/exclude من إضافتها إلى archive.tar.

يمكن أن يكون لديك خيارات --exclude متعددة. على سبيل المثال ، لاستبعاد جميع ملفات .log:

$ tar -cvf archive.tar /path --exclude=*.log

تضمين المسارات المطابقة فقط

بدلاً من استبعاد مسارات معينة ، يمكنك اختيار تضمين المطابقات فقط باستخدام -T:

$ tar -cvf archive.tar -T include-list.txt

حيث يحتوي include-list.txt على الأنماط مثل *.py لمطابقة الامتدادات فقط.

خيارات الضغط

يستخدم tar gzip كضغط افتراضي. يمكنك تحديد خوارزميات مختلفة:

  • لـ gz (gzip): -z
  • لـ bz2 (bzip2): -j
  • لـ lzma: -J
  • لـ lzop: -Z

على سبيل المثال:

$ tar -cjf archive.tar.bz2 /path # ضغط bzip2

يمكنك أيضًا تعيين مستوى الضغط ، والذي يتراوح عادةً بين 1 إلى 9 (أعلى = ضغط أفضل ولكن أبطأ):

$ tar -czf -9 archive.tar.gz /path # مستوى gzip 9

التحقق من الأرشيف

بمجرد إنشاء أرشيف ، يمكنك التحقق مما إذا كان قد تم إتلافه أو تغييره باستخدام -W:

$ tar -Wvf archive.tar

سيتحقق هذا من سلامة الأرشيف.

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

$ tar -Wzvf archive.tar.gz

Tar عبر الأنابيب والوصول عن بُعد

يمكن لـ Tar قراءة/كتابة الأرشيفات محليًا أو عن بُعد عبر stdin/stdout.

على سبيل المثال ، لإنشاء tar عبر SSH:

$ ssh user@host 'tar -cf - /path/to/archive' | tar -xvf -

سيرسل هذا إخراج tar عبر SSH لاستخراجه محليًا.

يمكنك أيضًا استخراج أرشيف وتمريره عبر SSH للاستخراج عن بُعد:

$ tar -cf - /path/to/archive | ssh user@host 'tar -xvf -'

يمكن أن يسرع تمرير tar عبر SSH مع الضغط / فك الضغط بشكل كبير من عمليات النقل:

$ tar czf - /path/to/archive | ssh user@host 'tar xvzf -'

هذه مجرد أمثلة قليلة – يوفر tar الكثير من المرونة مع الأنابيب.

تجزئة/توسيع الأرشيفات

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

للتجزئة حسب الحجم:

$ tar -cvf - --tape-length=1G /path | split -b 1G - archive.tar.

سيقسم هذا archive.tar إلى أجزاء بحجم 1 جيجابايت تسمى archive.tar.01 و archive.tar.02 وما إلى ذلك.

يمكنك أيضًا تجزئة حسب عدد الأجزاء:

$ tar -cvf - /path | split -b 100m -d -a 5 - archive.tar.

سيقسم هذا الأرشيف إلى 5 أجزاء (-a 5) تسمى archive.tar.01 و archive.tar.02 و … archive.tar.05.

لإعادة بناء الأرشيف من الأجزاء ، استخدم cat لربطها معًا بالترتيب:

$ cat archive.tar.0* > archive.tar

ثم استخرج كالمعتاد باستخدام tar -xf archive.tar.

أرشفة الملفات الخاصة

  • لأرشفة ملفات الجهاز مثل /dev/sdb ، استخدم خيار --preserve-devices في GNU tar أو --formats=v7 في tar BSD/Solaris.
  • لتتبع الارتباطات الصلبة للملفات بدقة وأرشفتها بشكل صحيح ، استخدم --hard-dereference.
  • لأرشفة السمات الممتدة للنظام (SELinux ، ACLs ، إلخ) ، استخدم --xattrs.
  • للاحتفاظ بالدلائل الفارغة في الأرشيف ، استخدم --keep-directory-symlinks.

راجع وثائق tar للحصول على تفاصيل حول هذه الخيارات وغيرها من خيارات الأرشفة المتخصصة.

أمثلة وعلامات Tar المفيدة

فيما يلي مرجع سريع لبعض علامات وعمليات tar المفيدة:

# إنشاء أرشيف
$ tar -cf archive.tar /path/to/files
# أرشيف مضغوط
$ tar -czf archive.tar.gz /path/to/files  
# عرض محتويات الأرشيف
$ tar -tf archive.tar
# استخراج الأرشيف
$ tar -xf archive.tar
# استخراج إلى مجلد محدد  
$ tar -xf archive.tar -C /tmp
# إلحاق ملفات بالأرشيف
$ tar -rvf archive.tar file1 file2
# تحديث ملفات في الأرشيف
$ tar -uvf archive.tar file1
# حذف ملف من الأرشيف
$ tar --delete -f archive.tar file_to_delete
# أرشفة مجلد عن بُعد عبر SSH
$ ssh user@host 'tar -cf - /path/to/archive' | tar -xvf -
# التحقق من سلامة الأرشيف 
$ tar -Wvf archive.tar  
# مستويات الضغط 1-9
$ tar -czf -9 archive.tar.gz /path
# تجزئة الأرشيف إلى أجزاء
$ tar -cf - /path | split -b 100m -d -a 5 - archive.tar.

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

الخلاصة

Tar أداة أساسية للعمل مع مجموعات من الملفات على أنظمة لينكس/يونكس. يتيح لك تجميع عدد أي ملفات ودلائل وملفات خاصة في أرشيف محمول واحد يحافظ على الأذونات والسمات ، وله العديد من الاستخدامات اليومية لعمل نسخ احتياطية للملفات ونقلها وورش عمل Docker و CI/CD ، وتوزيع البرامج. إنه أداة موحدة في يونكس مضمون توافرها على أنظمة لينكس وماك أو إس.

آمل أن يكون هذا الدليل قدم لك نظرة عامة واسعة حول tar وكيفية استخدامه بفعالية لإدارة الأرشيفات على نظام لينكس مثل أوبونتو 18.04 / 20.04 / 22.04 ، سنت أو إس7 / 8، ريد هات 7.

إذا كان لديك أي أسئلة أو ترغب في معرفة المزيد عن هذا المقال، يرجى نشر سؤالك في التعليقات.

LEAVE A COMMENT