أنواع ملفات يونكس

أنواع الملفات القياسية السبعة في نظام يونكس هي: الملفات العادية ، وملفات الدليل ، والروابط الرمزية ، وملفات FIFO الخاصة ، وملفات الكتل الخاصة ، وملفات الأحرف الخاصة ، وملفات المقابس ، وذلك وفقًا لمعيار POSIX . [ 1 ] تُستخدم هذه الأنواع في أنظمة ملفات أنظمة التشغيل يونكس أو الأنظمة الشبيهة بيونكس . تسمح بعض تطبيقات أنظمة التشغيل بأنواع ملفات أكثر مما يتطلبه معيار POSIX (مثل ملفات door في نظام سولاريس ). يمكن تحديد نوع الملف باستخدام الأمر الذي يعرض النوع في الحرف الأول من حقل أذونات نظام الملفات .ls -l

بالنسبة للملفات العادية، لا يفرض نظام يونكس أي بنية ملفات داخلية (يُطلق على هذا اسم تنسيق الملف[ 2 ] ولذلك، فإن بنيتها وتفسيرها يعتمدان كليًا على البرنامج الذي يستخدمها. [ 3 ] ومع ذلك، fileيمكن عادةً استخدام الأمر لتحديد نوع البيانات التي تحتويها. [ 4 ]

التمثيلات

رقمي

يُحدد نوع الملف من خلال نمط الملف، الذي يتضمن نوع الملف وصلاحيات الوصول إليه . تُعيد دالة النظام `stat()` معلومات حول الملف في بنية بيانات تتضمن نمط الملف في حقل يُسمى ` . تُعرَّف أنواع الملفات وصلاحيات الوصول إليها عادةً كوحدات ماكرو تُوسَّع إلى قيم عددية ثمانية، ويُعرَّف حقل `.` في بنية البيانات عادةً كمتغير عددي غير مُوقَّع، ويبلغ حجمه عادةً 32 بت، على الرغم من أن معيار لغة C يسمح بأن يكون خاصًا بالتنفيذ. مع ذلك، في الأنظمة الشبيهة بنظام يونكس ، تُستخدم عادةً 16 بتًا فقط (6 أرقام ثمانية) من الحقل بواسطة الأعداد الصحيحة الثمانية التي تُمثل أنواع الملفات المختلفة وصلاحيات الوصول إليها. تُستخدم البتات الأربعة الأكثر أهمية (رقمان ثمانيان) لنوع الملف، بينما تُستخدم البتات الـ 12 المتبقية لصلاحيات الوصول، والتي تتكون من البتات الثلاثة الأعلى أهمية (رقم ثماني واحد) المستخدمة لسمات setuid وsetgid وsticky، والتي تُعرف عادةً بالصلاحيات الخاصة، متبوعةً بالبتات التسعة (3 أرقام ثمانية) المستخدمة للصلاحيات العادية. يُحدد معيار POSIX البتات الـ 12 الأقل أهمية من حقل وضع الملف لتكون صلاحيات الوصول، ويترك بتات نوع الملف لتفصيل تنفيذي. [ 1 ]statst_modest_modestatst_mode

عند كتابة قيمة الوضع بالنظام الثماني ، فإنها تُظهر نوع ملف يونكس بشكل منفصل - كأول رقمين. على سبيل المثال، يشير الوضع 100644 بالنظام الثماني إلى ملف عادي لأن حقل بت نوع ملف يونكس هو 10 بالنظام الثماني. يُستخدم هذا التنسيق في git و tar و ar وسياقات أخرى. [ 5 ]

يمكن للبرنامج اختبار قيمة الوضع لتحديد نوع ملف يونكس باستخدام وحدات الماكرو المتوفرة في رؤوس C القياسية . على سبيل المثال، يمكن للبرنامج إخفاء قيمة الوضع باستخدام S_IFMT(170000 ثمانيًا وفقًا لاتفاقية أول 4 بتات) للحصول على نوع ملف يونكس، ثم اختبار تلك القيمة S_IFDIRلتحديد ما إذا كان الملف مجلدًا. بدلاً من ذلك، يمكن للبرنامج استخدام S_ISDIRالماكرو. S_IFMTليس مفهومًا أساسيًا في POSIX، بل هو امتداد لواجهات النظام المفتوح X/Open (XSI). قد تستخدم الأنظمة المتوافقة مع POSIX فقط بعض الطرق الأخرى. [ 1 ]

رمزي

يحدد معيار POSIX الصيغة الطويلة للأمر lsلتمثيل نوع ملف Unix كأول حرف في الإدخال. [ 6 ]

مؤشرات أنواع ملفات يونكس
يكتبرمز
عادي-
دليلد
الرابط الرمزيل
عرض خاص بنظام التناوبص
كتلة خاصةب
شخصية خاصةج
المقبسs

تستخدم نسخة GNU coreutils من الدالة gnulib [ 7 ls] لتنسيق filemode()سلسلة الوضع . يستخدم FreeBSD أسلوبًا أبسط ولكنه يسمح بعدد أقل من أنواع الملفات. [ 8 ]

أمثلة

ls -lيعرض الأمر سلسلة نمط الملف كعمود أول في مخرجات كل ملف. تبدأ هذه السلسلة بمؤشر نوع ملف يونكس. المخرجات التالية خاصة بالدليل الجذر ، من الأمر ls -l /، والتي تبدأ بـ dللإشارة إلى أنه دليل. أما باقي العمود الأول ( rwxr-xr-x) فيشير إلى الأذونات .

د rwxr-xr-x 26 جذر الجذر 4096 22 سبتمبر 09:29 /

يتضمن ناتج الأمر stat /اسم نوع ملف يونكس الكامل:

 ملف: "/" الحجم: 4096، عدد الكتل: 8، كتلة الإدخال/الإخراج: 4096 (دليل) الجهاز: 802h/2050d، رقم العقدة: 128، عدد الروابط: 26 الوصول: (0755/ d rwxr-xr-x) معرف المستخدم: ( 0/ root) معرف المجموعة: ( 0/ root) ...

يبدأ الناتج لملف الارتباط الرمزي بحرف أولي l(حرف صغير 'L') ويحدد مسار الملف المشار إليه كما في مثال ls -lالناتج هذا: [ 6 ]

l rwxrwxrwx ... termcap -> /usr/share/misc/termcap l rwxrwxrwx ... S03xinetd -> ../init.d/xinetd

الأنبوب المسمى هو ملف خاص يمكن إنشاؤه باستخدام الأمر . يتم تعريف الأنبوب المسمى كما هو موضح في مثال الإخراج التالي: [ 6 ]mkfifonamepls -l

p rw-rw---- ... mypipe

مسار ملف المقبس هو نوع من مقابس نطاق يونكس ، وهو ملف خاص للتواصل بين العمليات، وعلى عكس الأنابيب المسماة، يسمح بالاتصال ثنائي الاتجاه الكامل . يتم تمييز المقبس كما sفي مثال ls -lالإخراج التالي: [ 6 ]

s rwxrwxrwx /tmp/.X11-unix/X0

تمثل ملفات الكتل وملفات الأحرف أجهزة مادية. يمكن استخدام ملف الجهاز للتحكم في الوصول إلى الجهاز وللسماح بإجراء عمليات شبيهة بالملفات على الجهاز المتصل. يتم تمييز جهاز الأحرف (الوصول التسلسلي) بعلامة، cويتم تمييز جهاز الكتل (الوصول العشوائي) بعلامة، bكما هو موضح في مثال الإخراج التالي ls -l: [ 6 ]

ج rw-rw-rw- ... /dev/null ب rw-rw---- ... /dev/sda

مراجع

  1. 1 2 3 "<sys/stat.h>" . المواصفات الأساسية لمجموعة Open Group، الإصدار 8. مجموعة Open Group. 14 يونيو 2024. مؤرشف من الأصل في 25 أبريل 2025. تم الاطلاع عليه في 1 يونيو 2025 .
  2. على سبيل المثال MW؛ MKD؛ كوفمان، لار (أكتوبر 2002). "ضغط الملفات لتوفير المساحة". أدوات يونكس القوية ( الطبعة الثالثة). أورايلي. ص 408. ISBN   9780596003302العديد من تنسيقات ملفات الصوت والرسومات (مثل MP3 و JPEG) مضغوطة بشكل جيد بالفعل .
  3. لوكيدس، مايك (أكتوبر 2002). "متى لا يكون الملف ملفًا؟". أدوات يونكس القوية ( الطبعة الثالثة). أورايلي. ص 80. ISBN   9780596003302الملف ليس إلا سلسلة من البايتات
  4. " " . معيار IEEE 1003.1-2017 ( POSIX ) . مجموعة Open Group . 2018. مؤرشف من الأصل بتاريخ 12-10-2018 . تم الاطلاع عليه بتاريخ 26-10-2023 .file
  5. كيت، ستيفن. "ما هو نمط الملف الذي يمثله الرابط الرمزي؟" . موقع يونكس ولينكس ستاك إكستشينج .
  6. 1 2 3 4 5 " " . معيار IEEE 1003.1-2008 ( POSIX ) . مجموعة Open Group. 11 مارس 2017. مؤرشف من الأصل في 3 أغسطس 2017. تم الاطلاع عليه في 10 فبراير 2017 .ls
  7. "وظيفة وضع الملف في ملفات GNU الأساسية" . جنو. 11 مارس 2017.
  8. "دالة printtype من FreeBSD" . FreeBSD. 11 مارس 2017.