اسم الملف

لقطة شاشة لواجهة أوامر ويندوز تُظهر أسماء الملفات في دليل
قائمة أسماء الملفات، مع أسماء ملفات طويلة تحتوي على فواصل ومسافات كما تظهر في شاشة البرنامج.

يُستخدم اسم الملف لتمييز ملف الحاسوب بشكل فريد في نظام الملفات . وتفرض أنظمة الملفات المختلفة قيودًا مختلفة على أطوال أسماء الملفات.

قد يتضمن اسم الملف (بحسب نظام الملفات):

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

تختلف الأحرف المسموح بها في أسماء الملفات باختلاف نظام الملفات. تسمح معظم أنظمة الملفات بالأحرف من A إلى Z والأرقام من 0 إلى 9؛ كما تدعم العديد منها أحرفًا إضافية، مثل الأحرف من a إلى z، والأحرف الخاصة، والأحرف القابلة للطباعة كالأحرف المُشكّلة، والرموز في الأبجديات غير اللاتينية، والرموز في النصوص غير الأبجدية. تسمح بعض أنظمة الملفات حتى بالأحرف غير القابلة للطباعة، بما في ذلك Bell و Null و Return و Linefeed ، لتكون جزءًا من اسم الملف، [ 1 ] مع أن معظم الأدوات لا تتعامل معها بكفاءة.

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

يستخدم البعض مصطلح "اسم الملف" للإشارة إلى وصف كامل للجهاز والمجلدات الفرعية واسم الملف، مثل المسار التالي في نظام ويندوز : C:\Program Files\Microsoft Games\Chess\Chess.exe . في هذه الحالة، يكون اسم الملف هو Chess.exe . تحتوي بعض البرامج، مثل مستكشف الملفات في نظام ويندوز، على إعدادات لإخفاء الامتداد.

تاريخ

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

على سبيل المثال، في نظامي التشغيل TOPS-10 و RSTS/E من شركة Digital Equipment Corporation ، تم تحديد الملفات بواسطة

  • اسم الجهاز (حرف واحد أو حرفان) متبوعًا برقم الوحدة (اختياري)، ثم نقطتان رأسيتان (":"). إذا لم يكن موجودًا، يُفترض أنه SY:
  • رقم الحساب، ويتكون من قوسين مربعين "["، ورقمين مفصولين بفاصلة، متبوعًا بقوس مغلق "]". إذا تم حذفه، يُفترض أنه رقمك.
  • اسم الملف إلزامي، ويتكون من 1 إلى 6 أحرف (أحرف كبيرة أو أرقام)
  • امتداد اختياري مكون من 3 أحرف.

في نظام التشغيل OS/360 والأنظمة اللاحقة من IBM ، يمكن أن يصل طول اسم الملف إلى 44 حرفًا، ويتكون من أحرف كبيرة وأرقام ونقطة. يجب أن يبدأ اسم الملف بحرف أو رقم، وأن تظهر نقطة مرة واحدة على الأقل كل 8 أحرف، ولا يجوز وجود نقطتين متتاليتين في الاسم، ويجب أن ينتهي الاسم بحرف أو رقم. [ 2 ] [ 3 ] وبحسب الاصطلاح، عند استخدام TSO ، فإن الأحرف والأرقام التي تسبق النقطة الأولى تمثل رقم حساب المالك أو المشروع الذي ينتمي إليه الملف، ولكن ليس من الضروري اتباع هذا الاصطلاح. [ 4 ]

في نظام MUSIC/SP بجامعة ماكجيل ، كانت أسماء الملفات تتكون من

  • رقم الحساب اختياري، ويتكون من حرف إلى أربعة أحرف متبوعة بنقطتين رأسيتين. إذا كان رقم الحساب مفقودًا، فمن المفترض أنه موجود في حسابك، ولكن إذا لم يكن كذلك، فمن المفترض أنه موجود في حساب *COM: الوهمي، وهو المكان الذي يتم فيه فهرسة جميع الملفات المصنفة على أنها عامة.
  • اسم الملف من 1 إلى 17 حرفًا، والذي يمكن أن يكون أحرفًا كبيرة أو أرقامًا، والنقطة، مع اشتراط ألا يبدأ أو ينتهي بنقطة، أو أن يحتوي على نقطتين متتاليتين.

كان نظام التشغيل Univac VS/9 يحتوي على أسماء ملفات تتكون من

  • اسم الحساب، ويتكون من علامة الدولار "$"، واسم مستخدم من 1 إلى 7 أحرف (حرف أو رقم)، ونقطة (""). إذا لم يكن اسم الحساب موجودًا، يُفترض أنه موجود في حسابك، ولكن إذا لم يكن كذلك، فسيبحث نظام التشغيل في حساب مدير النظام $TSOS. إذا أدخلت علامة الدولار فقط كاسم للحساب، فهذا يشير إلى أن الملف موجود في حساب $TSOS، إلا إذا تطابقت الأحرف السبعة الأولى من اسم الملف قبل النقطة الأولى مع اسم حساب فعلي، فحينها يُستخدم ذلك الحساب، على سبيل المثال، ABLE.BAKER هو ملف موجود في حسابك، ولكن إذا لم يكن موجودًا، فسيبحث النظام عن $TSOS.ABLE.BAKER، ولكن إذا تم تحديد $ABLE.BAKER، فسيتم استخدام الملف $TSOS.ABLE.BAKER، إلا إذا كان $ABLE حسابًا صالحًا، فحينها سيبحث عن ملف باسم BAKER في ذلك الحساب.
  • اسم الملف، من 1 إلى 56 حرفًا (أحرف وأرقام) مفصولة بنقاط. لا يمكن أن يبدأ اسم الملف أو ينتهي بنقطة، كما لا يمكن أن تظهر نقطتان متتاليتان.

في عام 1985، عرّفت RFC 959 رسميًا اسم المسار بأنه سلسلة الأحرف التي يجب على المستخدم إدخالها في نظام الملفات لتحديد ملف ما. [ 5 ] 

في أجهزة الكمبيوتر الشخصية القديمة التي تعمل بنظام التشغيل CP/M ، كانت أسماء الملفات تتكون دائمًا من 11 حرفًا. وكان يُشار إلى هذا باسم ملف 8.3، بحد أقصى 8 بايتات للاسم و3 بايتات للامتداد. سمحت الأدوات والتطبيقات للمستخدمين بتحديد أسماء الملفات بدون مسافات لاحقة وإضافة نقطة قبل الامتداد. لم تكن النقطة تُخزن فعليًا في الدليل. سمح استخدام 7 بتات فقط بتضمين العديد من خصائص الملف في اسمه الفعلي باستخدام البت الأعلى؛ وشملت هذه الخصائص: للقراءة فقط، والأرشفة، والنظام. [ 6 ] في النهاية، أصبح هذا الأمر مقيدًا للغاية، فتم زيادة عدد الأحرف المسموح بها. نُقلت بتات الخصائص إلى كتلة خاصة في الملف تتضمن معلومات إضافية.

كان نظام ملفات جدول تخصيص الملفات (FAT) الأصلي ، المستخدم في برنامج Standalone Disk BASIC-80 ، يستخدم اسم ملف بطول 6.3 بايت، بحد أقصى 6 بايت في الاسم و3 بايت في الامتداد. واستخدم نظاما الملفات FAT12 و FAT16 في أنظمة IBM PC DOS / MS-DOS وأنظمة Microsoft Windows قبل Windows 95 نفس اصطلاح 8.3 المستخدم في نظام ملفات CP/M. وكان نظاما الملفات FAT يدعمان الأحرف ذات 8 بت، مما يسمح لهما بدعم الأحرف غير ASCII في أسماء الملفات، ويخزنان السمات بشكل منفصل عن اسم الملف.

في حوالي عام 1995، تم تقديم نظام VFAT ، وهو امتداد لنظام ملفات MS-DOS FAT، في نظامي التشغيل Windows 95 و Windows NT . وقد سمح هذا النظام باستخدام أسماء ملفات طويلة بأحرف مختلطة (LFNs)، باستخدام أحرف Unicode ، بالإضافة إلى أسماء "8.3" الكلاسيكية.

أنظمة تسمية الملفات

قد تقوم البرامج والأجهزة تلقائيًا بتعيين أسماء للملفات مثل عداد رقمي (على سبيل المثال IMG_0001.JPG) أو طابع زمني بالتاريخ والوقت الحاليين.

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

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

لعلّ أكثر اصطلاحات تسمية الملفات شيوعًا هو حصر أسماء المجلدات والملفات في 65 حرفًا ضمن مجموعة أحرف POSIX المحمولة لأسماء الملفات . ومن الأساليب الشائعة تخزين "عنوان" المستند بالكامل داخل الملف نفسه كأحرف UTF-8 عشوائية، ثم توليد "مُعرّف" (slug) تلقائيًا من هذا العنوان لاستخدامه كاسم للملف.

المراجع: المطلق مقابل النسبي

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

هذا يُنشئ مسارًا مطلقًا أو نسبيًا يتكون من سلسلة من أسماء الملفات.

عدد الأسماء في كل ملف

تسمح أنظمة الملفات الشبيهة بنظام يونكس بتعدد أسماء الملفات؛ أما في أنظمة الملفات التقليدية الشبيهة بنظام يونكس، فتكون الأسماء عبارة عن روابط صلبة إلى عقدة الملف (inode) أو ما يعادلها. يدعم نظام ويندوز الروابط الصلبة على أنظمة ملفات NTFS ، ويوفر الأمر اللازم لإنشائها fsutilفي ويندوز XP والإصدارات اللاحقة. [ 7 ] [ 8 ] تختلف الروابط الصلبة عن اختصارات ويندوز، أو أسماء الملفات المستعارة التقليدية في نظامي ماك أو إس/macOS ، أو الروابط الرمزية . وقد أتاح إدخال أسماء الملفات الطويلة (LFNs) مع نظام VFAT إمكانية استخدام أسماء مستعارة للملفات. على سبيل المثال، كان اسم الملف المستعار " "، بحد أقصى ثمانية أحرف بالإضافة إلى ثلاثة أحرف، وسيلةً للتوافق مع قيود الإصدار 8.3 للبرامج القديمة.mklinklongfi~1.???long file name.???

تم استخدام هذه الخاصية بواسطة خوارزمية أمر النقل التي تقوم أولاً بإنشاء اسم ملف ثانٍ ثم تقوم فقط بإزالة اسم الملف الأول.

توفر أنظمة الملفات الأخرى، بحكم تصميمها، اسم ملف واحد فقط لكل ملف، مما يضمن أن تغيير ملف اسم ملف واحد لا يؤدي إلى تغيير ملف اسم الملف الآخر.

متى القيود

تفرض بعض أنظمة الملفات قيودًا على طول أسماء الملفات. في بعض الحالات، ينطبق هذا الطول على اسم الملف بالكامل، كما هو الحال في نظام IBM z/OS حيث يبلغ الحد الأقصى 44 حرفًا . [ 3 ] وفي حالات أخرى، قد تنطبق حدود الطول على أجزاء معينة من اسم الملف، مثل اسم ملف في مجلد، أو اسم المجلد نفسه. على سبيل المثال، 9 (مثل نظام FAT ذي 8 بت في Standalone Disk BASIC )، و11 (مثل FAT12 و FAT16 و FAT32 في DOS)، و14 (مثل أنظمة Unix القديمة)، و21 ( Human68K )، و31 ، و30 (مثل Apple DOS 3.2 و3.3)، و15 (مثل Apple ProDOS )، و44 (مثل IBM S/370)، [ 3 ] أو 255 (مثل أنظمة Berkeley Unix القديمة) حرفًا أو بايتًا. غالباً ما تنتج حدود الطول عن تخصيص مساحة ثابتة في نظام الملفات لتخزين مكونات الأسماء، لذا فإن زيادة الحدود غالباً ما تتطلب تغييراً غير متوافق، بالإضافة إلى حجز مساحة أكبر.

تتمثل إحدى المشكلات الخاصة بأنظمة الملفات التي تخزن المعلومات في مجلدات متداخلة في إمكانية إنشاء ملف بمسار كامل يتجاوز حدود التنفيذ، نظرًا لأن فحص الطول قد ينطبق فقط على أجزاء محددة من الاسم وليس على الاسم بأكمله. تقتصر العديد من تطبيقات ويندوز على قيمة MAX_PATH260، ولكن أسماء ملفات ويندوز قد تتجاوز هذا الحد بسهولة. [ 9 ] ابتداءً من ويندوز 10، الإصدار 1607 ، أُزيلت قيود MAX_PATH. [ 10 ]

امتدادات أسماء الملفات

تتكون أسماء الملفات في بعض أنظمة الملفات، مثل FAT ومستويي ODS-1 وODS-2 من Files-11 ، من جزأين: اسم أساسي أو جذر ، وامتداد أو لاحقة تستخدمها بعض التطبيقات للإشارة إلى نوع الملف . أما في أنظمة ملفات أخرى، مثل أنظمة ملفات Unix و VFAT و NTFS ، فيُعامل اسم الملف كسلسلة نصية واحدة؛ ومن المتعارف عليه في هذه الأنظمة اعتبار الأحرف التي تلي النقطة الأخيرة في اسم الملف، في حال احتواء اسم الملف على نقاط، بمثابة امتداد.

قد تستخدم ملفات الإخراج المتعددة التي يُنشئها تطبيقٌ ما نفس الاسم الأساسي وامتداداتٍ مختلفة. على سبيل المثال، قد يستخدم مُصرّف لغة فورتران الامتداد `..` FORلملف الإدخال المصدر، و`..` OBJلملف الإخراج الكائني، و`..` LSTلقائمة الملفات. على الرغم من وجود بعض الامتدادات الشائعة، إلا أنها اختيارية، وقد يستخدم تطبيقٌ آخر امتداداتٍ مختلفة REL. RPTوقد تم تقييد الامتدادات، تاريخيًا على الأقل في بعض الأنظمة، بطول 3 أحرف، ولكن بشكل عام يمكن أن يكون لها أي طول، على سبيل المثال `..` html.

قابلية التشغيل البيني للترميز

لا يوجد معيار ترميز عام لأسماء الملفات.

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

قابلية التشغيل البيني لمؤشرات الترميز

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

قد يُخزَّن اسم الملف باستخدام سلاسل بايت مختلفة في أنظمة متباينة داخل الدولة الواحدة، كما لو كان أحدها يستخدم ترميز Shift JIS الياباني ، والآخر يستخدم ترميز EUC الياباني . لم يكن التحويل ممكنًا لأن معظم الأنظمة لم تُظهر وصفًا للترميز المستخدم لاسم الملف ضمن معلومات الملف الموسعة. هذا الأمر أجبر على تخمين ترميز اسم الملف، وهو أمر مكلف، مع كل عملية وصول إلى الملف. [ 11 ]

كان الحل هو اعتماد نظام يونيكود كترميز لأسماء الملفات.

أما في نظام التشغيل ماك الكلاسيكي، فقد تم تخزين ترميز اسم الملف مع سمات اسم الملف. [ 11 ]

التوافق بين أنظمة يونيكود

يحل معيار يونيكود مشكلة تحديد الترميز.

مع ذلك، لا تزال بعض مشكلات التوافق محدودة، مثل التوحيد (التكافؤ)، أو إصدار يونيكود المستخدم. على سبيل المثال، يقتصر UDF على يونيكود 2.0؛ بينما يطبق نظام ملفات HFS+ في macOS توحيد يونيكود NFD ، وهو حساس لحالة الأحرف اختياريًا (غير حساس لحالة الأحرف افتراضيًا). لا يوجد معيار لطول اسم الملف الأقصى، وقد يعتمد على حجم وحدة الترميز. على الرغم من أنها مشكلة خطيرة، إلا أنها محدودة في معظم الحالات. [ 11 ]

في نظام لينكس، هذا يعني أن اسم الملف وحده لا يكفي لفتحه، بل يلزم أيضًا معرفة التمثيل الثنائي الدقيق لاسم الملف على جهاز التخزين. ويمكن حل هذه المشكلة على مستوى التطبيق، باستخدام بعض عمليات التوحيد المعقدة. [ 12 ]

تُعرف مشكلة تكافؤ يونيكود باسم "تصادم الأسماء المُعَيَّرة". أحد الحلول هو " الوعي بتكوين يونيكود غير المُعَيَّر"، المُستخدم في مجتمعات Subversion وApache التقنية. [ 13 ] لا يُعَيِّر هذا الحل المسارات في المستودع، وإنما يُعَيَّر فقط لأغراض المقارنة. مع ذلك، حصلت بعض المجتمعات على براءة اختراع لهذه الاستراتيجية، ما يمنع استخدامها من قِبَل مجتمعات أخرى.

وجهات نظر

للحد من مشاكل التوافق التشغيلي، تتضمن بعض الأفكار التي وصفتها شركة صن ما يلي:

  • استخدم ترميز يونيكود واحد (مثل UTF-8)
  • قم بإجراء تحويلات شفافة للرموز على أسماء الملفات
  • لا يتم تخزين أسماء الملفات الموحدة
  • تحقق من التكافؤ القياسي بين أسماء الملفات، لتجنب وجود اسمي ملفين متكافئين قياسياً في نفس الدليل. [ 11 ]

تُشكل هذه الاعتبارات قيدًا لا يسمح بالتحول إلى ترميز مستقبلي مختلف عن UTF-8.

ترحيل يونيكود

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

  • وفرت مايكروسوفت عملية ترحيل شفافة للمستخدم عبر تقنية VFAT
  • قدمت شركة آبل "أداة إصلاح ترميز اسم الملف الإصدار 1.0". [ 14 ]
  • قدم مجتمع لينكس برنامج " convmv ". [ 15 ]

شهد نظام التشغيل Mac OS X 10.3 اعتماد شركة Apple لتقسيم الأحرف وفقًا لمعيار Unicode 3.2، ليحل محل معيار Unicode 2.1 المستخدم سابقًا. وقد تسبب هذا التغيير في مشاكل للمطورين الذين يكتبون برامج لنظام Mac OS X. [ 16 ]

رجل فريد

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

قد يختلف أسلوب التمييز بين الأسماء بحسب حساسية الأحرف وشكل توحيد ترميز يونيكود ، مثل NFC وNFD. وهذا يعني أنه قد يتم إنشاء ملفين منفصلين بنفس اسم الملف النصي ولكن بتنفيذ بايت مختلف لاسم الملف، مثل L"\x00C0.txt" (UTF-16، NFC) (حرف A كبير لاتيني مع علامة نبرة) وL"\x0041\x0300.txt" (UTF-16، NFD) (حرف A كبير لاتيني، علامة نبرة مدمجة). [ 17 ]

حفظ أظرف الرسائل

بعض أنظمة الملفات، مثل FAT قبل ظهور VFAT ، تخزن أسماء الملفات بأحرف كبيرة بغض النظر عن حالة الأحرف المستخدمة في إنشائها. على سبيل المثال، يُخزن ملف باسم "MyName.Txt" أو "myname.txt" باسم "MYNAME.TXT" (يحافظ VFAT على حالة الأحرف). يمكن استخدام أي شكل من أشكال الأحرف الكبيرة والصغيرة للإشارة إلى الملف نفسه. تُسمى هذه الأنظمة بأنظمة الملفات غير الحساسة لحالة الأحرف ، وهي لا تحافظ على حالة الأحرف . بل إن بعض أنظمة الملفات تمنع استخدام الأحرف الصغيرة في أسماء الملفات منعًا باتًا.

بعض أنظمة الملفات تخزن أسماء الملفات بالشكل الذي أُنشئت به أصلاً؛ وتُعرف هذه الأنظمة بأنظمة الملفات التي تحافظ على حالة الأحرف . قد يكون نظام الملفات هذا حساسًا لحالة الأحرف أو غير حساس لها . في حالة النظام الحساس لحالة الأحرف، يُمكن أن يُشير "MyName.Txt" و"myname.txt" إلى ملفين مختلفين في نفس المجلد، ويجب الإشارة إلى كل ملف بنفس حالة الأحرف في اسمه. أما في نظام الملفات الذي يحافظ على حالة الأحرف، فلا يُمكن أن يكون اسم الملف في مجلد معين إلا واحدًا من بين "MyName.Txt" أو "myname.txt" أو "Myname.TXT"، ويُمكن الإشارة إلى أي ملف يحمل أحد هذه الأسماء بأي حالة أحرف.

منذ نشأتها، كانت أنظمة الملفات في يونكس والأنظمة المشتقة منها حساسة لحالة الأحرف وتحافظ عليها. مع ذلك، ليست جميع أنظمة الملفات في هذه الأنظمة حساسة لحالة الأحرف؛ فنظاما HFS+ و APFS في macOS ، افتراضيًا، غير حساسين لحالة الأحرف ولكنهما يحافظان عليها، وعادةً ما توفر خوادم SMB سلوكًا غير حساس لحالة الأحرف (حتى عندما يكون نظام الملفات الأساسي حساسًا لحالة الأحرف، مثل Samba في معظم الأنظمة الشبيهة بيونكس)، كما توفر أنظمة ملفات عملاء SMB سلوكًا غير حساس لحالة الأحرف. تُشكل حساسية نظام الملفات لحالة الأحرف تحديًا كبيرًا لبرامج مثل Samba و Wine ، التي يجب أن تعمل بكفاءة مع كل من الأنظمة التي تُعامل الملفات ذات الأحرف الكبيرة والصغيرة على أنها مختلفة، ومع الأنظمة التي تُعاملها بنفس الطريقة. [ 18 ]

الأحرف والكلمات المحفوظة

لم تكن أنظمة الملفات توفر دائمًا نفس مجموعة الأحرف لتكوين اسم الملف. قبل أن يصبح يونيكود معيارًا فعليًا، كانت أنظمة الملفات تستخدم في الغالب مجموعة أحرف تعتمد على اللغة. في المقابل، تسمح بعض الأنظمة الحديثة بتكوين اسم الملف من أي حرف تقريبًا من مجموعة أحرف يونيكود، وحتى من بعض تسلسلات البايتات غير التابعة ليونيكود. قد تفرض قيودٌ من قِبل نظام الملفات أو نظام التشغيل أو التطبيق أو متطلبات التوافق مع الأنظمة الأخرى.

تمنع العديد من أدوات نظام الملفات ظهور أحرف التحكم في أسماء الملفات. في أنظمة الملفات الشبيهة بنظام يونكس،يُحظر استخدام الحرف الفارغ [ 19 ] وفاصل المسار ./

شخصيات مثيرة للجدل

تمنع أدوات نظام الملفات واتفاقيات التسمية على الأنظمة المختلفة ظهور أحرف معينة في أسماء الملفات أو تجعلها إشكالية: [ 9 ] باستثناء ما هو منصوص عليه خلافًا لذلك، لا يمكن استخدام الرموز الموجودة في عمود الأحرف ، " و < على سبيل المثال، في أسماء ملفات Windows.

شخصيةاسمسبب الحظر
/خفضيُستخدم كفاصل لمكونات اسم المسار في أنظمة يونكس وويندوز وأميغا. (طالما أن إعداد SwitChar مضبوط على / ، فإن واجهة أوامر DOS ستستخدمه كحرف تبديل، لكن DOS وويندوز تقبلانه دائمًا كفاصل على مستوى واجهة برمجة التطبيقات). يُسمح باستخدام علامة الصلادة الكبيرة ( رمز يونيكود U+29F8) في أسماء ملفات يونكس وويندوز. 
\رد فعل عكسييُستخدم كفاصل افتراضي لمكونات اسم المسار في أنظمة DOS و OS/2 و Windows (حتى لو تم ضبط SwitChar على '-'؛ مسموح به في أسماء ملفات Unix، انظر الملاحظة 1 ). يُسمح باستخدام علامة العطف المعكوسة الكبيرة (U+29F9) في أسماء ملفات Windows.
?علامة استفهاميُستخدم كرمز بدل في أنظمة يونكس وويندوز وأميغا أو إس ؛ حيث يُشير إلى حرف واحد. يُسمح باستخدامه في أسماء ملفات يونكس، انظر الملاحظة 1. يُسمح باستخدام الوقف الحنجري ʔ (U+0294)، وعلامة الاستفهام التعجبية (U+203D)، وعلامة الاستفهام المقلوبة ¿ (U+00BF)، وعلامة الاستفهام المزدوجة (U+2047)، وعلامة الاستفهام السوداء المزخرفة ❓ (U+2753) في جميع أسماء الملفات.
%شهادةيُستخدم كرمز بدل في نظام RT-11 ؛ يُشير إلى حرف واحد. ليس له دلالة خاصة في نظام ويندوز.
*علامة النجمة أو النجمةيُستخدم كرمز بدل في أنظمة يونكس، ودوس، وRT-11، وVMS، وويندوز. يُشير إلى أي تسلسل من الأحرف (في يونكس، وويندوز، ودوس) أو أي تسلسل من الأحرف في اسم الملف أو امتداده (وبالتالي *.*في دوس يعني "جميع الملفات"). يُسمح باستخدامه في أسماء ملفات يونكس، انظر الملاحظة 1. انظر النجمة (الرسم البياني) للاطلاع على العديد من الأحرف الشبيهة بالنجمة المسموح بها في أسماء الملفات.
:القولونتُستخدم النقطتان الرأسيتان لتحديد نقطة التحميل/محرك الأقراص في نظام ويندوز؛ ولتحديد الجهاز الظاهري أو الجهاز الفعلي، مثل محرك الأقراص، في أنظمة AmigaOS و RT-11 وVMS؛ كما تُستخدمان كفاصل للمسارات في نظام ماك الكلاسيكي . يُشار إلى اسم عقدة DECnet (المكافئ لاسم مضيف NetBIOS [شبكة ويندوز] مسبوقًا بنقطة \\) عند تكرارهما بعد الاسم في نظام VMS. تُستخدم النقطتان الرأسيتان أيضًا في ويندوز لفصل تدفق بيانات بديل عن الملف الرئيسي. يُسمح باستخدام النقطتين الرأسيتين ꞉ (U+A789) ورمز النسبة ∶ (U+2236) في أسماء ملفات ويندوز. في خط Segoe UI ، المستخدم في مستكشف ويندوز ، تكون رموز النقطتين الرأسيتين والنقطتين الرأسيتين متطابقة.
|قضيب عمودي أو أنابيبيشير إلى تقنية معالجة البيانات المتسلسلة في أنظمة يونكس ودوس وويندوز؛ مسموح به في أسماء ملفات يونكس، انظر الملاحظة 1. يُسمح باستخدام عامل القسمة الرياضي ∣ (U+2223) في أسماء ملفات ويندوز .
"علامة اقتباس مزدوجة مستقيمةقيدٌ قديمٌ موروثٌ من نظام DOS. يُسمح باستخدام علامات الاقتباس المفردة ' (U+0027)، و' (U+2018)، و ' (U+2019)، وعلامات الاقتباس المزدوجة المنحنية، علامة الاقتباس المزدوجة اليسرى " (U+201C) وعلامة الاقتباس المزدوجة اليمنى " (U+201D)، في أي مكانٍ في أسماء الملفات. انظر الملاحظة 1 .
<أقل منيُستخدم لإعادة توجيه الإدخال ، وهو مسموح به في أسماء ملفات يونكس، انظر الملاحظة 1. يُسمح باستخدام حرف تعديل المسافة السهم الأيسر ˂ (U+02C2) في أسماء ملفات ويندوز .
>أكبر منيُستخدم لإعادة توجيه المخرجات ، وهو مسموح به في أسماء ملفات يونكس، انظر الملاحظة 1. يُسمح باستخدام مُعدِّل المسافة حرف السهم الأيمن ˃ (U+02C3) في أسماء ملفات ويندوز.
.نقطة أو نقطةلا يمكن أن تنتهي أسماء المجلدات بنقطة في نظام ويندوز، مع أنه يمكن أن تنتهي بنقطة متبوعة بمسافة بيضاء، مثل مسافة غير قابلة للكسر . في أنظمة أخرى، يُسمح بالنقطة، ولكن آخر ظهور لها يُفسَّر على أنه فاصل الامتداد في أنظمة VMS وDOS وويندوز. في أنظمة التشغيل الأخرى، تُعتبر النقطة عادةً جزءًا من اسم الملف، وقد يُسمح بأكثر من نقطة واحدة. في نظام يونكس، تعني النقطة في بداية اسم الملف أو المجلد أنه مخفي عادةً.
,فاصلةمسموح به، ولكن يتم التعامل معه كفاصل بواسطة مترجمي سطر الأوامر COMMAND.COM و CMD.EXE على نظامي DOS و Windows.
;فاصلة منقوطةمسموح به، لكن يتم التعامل معه كفاصل بواسطة مترجمات سطر الأوامر Bourne shell (وما يتوافق معها) و C shell (وما يتوافق معها) على أنظمة شبيهة بنظام Unix، و COMMAND.COM و CMD.EXE على أنظمة DOS و Windows. انظر الملاحظة 1 .
=علامة يساويمسموح به، ولكن يتم التعامل معه كفاصل بواسطة مترجمي سطر الأوامر COMMAND.COM و CMD.EXE على نظامي DOS و Windows.
فضاءمسموح به، ولكن يتم استخدام المسافة أيضًا كفاصل للمعلمات في تطبيقات سطر الأوامر ؛ انظر الملاحظة 1 .

ملاحظة 1: على الرغم من السماح بها في أسماء ملفات ومجلدات يونكس، فإن معظم أنظمة يونكس تتطلب وضع علامات اقتباس أو تهريب أحرف محددة مثل المسافات، <، >، |، \، وأحيانًا  :، (، )، &،  ;، #، بالإضافة إلى الأحرف البديلة مثل ؟ و * . 

five\ and\ six\<seven(مثال على الهروب) 'five and six<seven'أو "five and six<seven"(أمثلة على الاقتباس)

لم يكن الحرف å (U+00E5) مسموحًا به كأول حرف في اسم الملف في نظامي 86-DOS و MS-DOS/PC DOS 1.x-2.x، ولكن يمكن استخدامه في الإصدارات اللاحقة.

في أدوات ويندوز، لا يُسمح باستخدام المسافة أو النقطة كحرف أخير في اسم الملف. [ 20 ] يُسمح باستخدام النقطة كحرف أول، لكن بعض تطبيقات ويندوز، مثل مستكشف ويندوز ، تمنع إنشاء أو إعادة تسمية هذه الملفات (على الرغم من استخدام هذا الأسلوب في أنظمة يونكس لوصف الملفات والمجلدات المخفية ). تشمل الحلول البديلة إضافة نقطة عند إعادة تسمية الملف (والتي تُحذف تلقائيًا بعد ذلك)، أو استخدام برامج إدارة ملفات بديلة ، أو إنشاء الملف باستخدام سطر الأوامر، أو حفظ الملف بالاسم المطلوب من داخل التطبيق. [ 21 ]

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

في أنظمة يونكس، وأنظمة DOS، وأنظمة ويندوز، تحمل أسماء الملفات "." و ".." معاني خاصة (المجلد الحالي والمجلد الأصل على التوالي). كما تستخدم أنظمة ويندوز 95/98/ME أسماءً مثل "..." و "...." وما إلى ذلك للدلالة على مجلدات الجد أو الجد الأكبر. [ 22 ] تمنع جميع إصدارات ويندوز إنشاء أسماء ملفات تتكون من نقاط فقط، على الرغم من أن الأسماء التي تتكون من ثلاث نقاط ("...") أو أكثر مسموح بها في أنظمة يونكس.

بالإضافة إلى ذلك، في أدوات ويندوز ودوس، تُعتبر بعض الكلمات محجوزة ولا يمكن استخدامها كأسماء ملفات. [ 21 ] على سبيل المثال، ملفات أجهزة دوس : [ 23 ]

CON, CONIN$, CONOUT$, PRN, AUX, CLOCK$, NUL COM0، COM1، COM2، COM3، COM4، COM5، COM6، COM7، COM8، COM9 [ 9 ] LPT0، LPT1، LPT2، LPT3، LPT4، LPT5، LPT6، LPT7، LPT8، LPT9 [ 9 ] LST (فقط في 86-DOS وDOS 1.xx) KEYBD$، SCREEN$ (فقط في نظام MS-DOS 4.0 متعدد المهام ) $IDLE$ (فقط في Concurrent DOS 386 و Multiuser DOS و DR DOS 5.0 والإصدارات الأحدث) CONFIG$ (فقط في MS-DOS 7.0-8.0)

تتسبب الأنظمة التي تفرض هذه القيود في عدم توافقها مع بعض أنظمة الملفات الأخرى. على سبيل المثال، سيفشل نظام ويندوز في التعامل مع أسماء ملفات يونكس القانونية التالية، أو سيُصدر تقارير أخطاء بشأنها: aux.c، [ 24 ] q"uote"s.txt، أو NUL.txt.

تتضمن أسماء ملفات نظام الملفات NTFS المستخدمة داخليًا ما يلي:

$Mft، $MftMirr، $LogFile، $Volume، $AttrDef، $Bitmap، $Boot، $BadClus، $Secure، $Upcase، $Extend، $Quota، $ObjId و$Reparse

مقارنة قيود أسماء الملفات

يصف الجدول التالي السمات الشائعة لأسماء الملفات كما تم تطبيقها على أنظمة الملفات البارزة المختلفة.

نظامحساسية الموضوعالحفاظ على الحالةالأحرف المسموح بهاقيود المحتوىمتى القيود
نظام ملفات FAT ذو 8 بت؟؟ASCII ذو 7 بت (مخزن كبايتات ذات 8 بت) لا يمكن أن يبدأ الاسم بالرمز 0 أو 255يصل طول اسم الملف التسلسلي (بدون امتداد) إلى 9 أحرف؛ أما اسم الملف الثنائي فيتكون من 6 أحرف، بالإضافة إلى 3 أحرف للامتداد.
FAT12 ، FAT16 ، FAT32لالاأي صفحة ترميز OEM SBCS / DBCSيحظر الرموز من 0 إلى 31 و 255 ، وفي "بعض البيئات أيضًا : DOS 1/2 يحظر الرمز 0xE5 كأول حرف*/:<>?\|+,.;=[]!@

يمنع أسماء الأجهزة التي تتضمن: ، ، ... ، ، ، ، ... $IDLE$، AUX، COM1، COM4؛ CONوذلك CONFIG$حسب CLOCK$الحالة KEYBD$في كل مكان أو في الدليل الظاهري فقطLPT1LPT4LSTNULPRNSCREEN$AVAILDEV\DEV\

يصل طول الاسم الأساسي إلى 8 أحرف، بينما يصل طول الامتداد إلى 3 أحرف.
دهون نباتيةلانعمUCS-2يحظر الرموز من 0 إلى 31، "، *، /، :، <، >، ?، \، ،|ما يصل إلى 255 حرفًا
exFATلانعمUTF-16يحظر الرموز من 0 إلى 31، "، *، /، :، <، >، ?، \، ،|ما يصل إلى 255 حرفًا
نظام الملفات NTFS (على نظام ويندوز)خيارينعمUTF-16يحظر الرموز من 0 إلى 31، "، *، /، :، <، >، ?، \، ،|

يحظر أسماء أجهزة MS-DOS. [ أ ] [ 25 ] تقوم واجهة برمجة تطبيقات Win32 بإزالة النقاط اللاحقة والمسافات البادئة واللاحقة، باستثناء مسار UNC. [ ب ]

ما يصل إلى 255 حرفًا
نظام الملفات NTFS (مساحة اسم POSIX)خيارينعمUTF-16ممنوع /والرمز 0ما يصل إلى 255 حرفًا
HPFSلانعمأي مجموعة 8 بتيحظر |، \، ?، *، <، "، ، :، >،/ما يصل إلى 254 حرفًا
HFSلانعمأي مجموعة 8 بتيحظر:يصل عدد الأحرف إلى 255 حرفًا؛ الإصدارات القديمة من Finder تقتصر على 31 حرفًا
HFS+ [ 26 ]خيارينعمUTF-16يمنع الوصول :إلى القرص ونظام التشغيل Mac OS الكلاسيكي ؛ ويربط بين :أسماء الملفات /والقرص في نظام macOSما يصل إلى 255 حرفًا
APFS [ 27 ]خيارينعمUTF-8 [ 28 ]يحظر /، [ ج ] رمز 0ما يصل إلى 255 حرفًا
يونكس (نموذجي)نعمنعمأي مجموعة 8 بتممنوع /، الرمز 0ما يصل إلى 255 حرفًا
أنظمة الملفات UNIX ( الإصدار 7 / S3 / S5 )نعمنعمأي مجموعة 8 بتممنوع /، الرمز 0ما يصل إلى 14 حرفًا
POSIX (اسم ملف قابل للنقل بالكامل) [ 29 ]نعمنعمAZ, az, 09, ., _,-ممنوع /، الرمز 0؛ لا يمكن أن يكون الحرف الأول-ما يصل إلى 14 حرفًا
نظام ملفات z/OS الكلاسيكي MVS (مجموعات البيانات)لالاصفحات رموز EBCDICيحظر استخدام $الرموز الست عشرية C0؛ يجب أن يكون الحرف الأول أبجديًا أو وطنيًا ( , #, )@-$#@ما يصل إلى 44 حرفًا
نظام ملفات إدارة المحتوىلالاصفحات رموز EBCDICيصل طول الاسم الأساسي إلى 8 أحرف بالإضافة إلى 8 أحرف لنوع الملف
ISO 9660لا؟AZ, 09, _,.المستوى  2: حتى 180 (تقريبًا)؛ المستوى  3: حتى 200
أميغالانعمأي مجموعة 8 بتيحظر :، /، الرمز 0حتى 30 حرفًا
أميغا يا إلهيلانعمأي مجموعة 8 بتيحظر :، /، الرمز 0حتى 30 حرفًا
نظام ملفات أميغا PFSلانعمأي مجموعة 8 بتيحظر :، /، الرمز 0ما يصل إلى 107 أحرف
Amiga SFSلانعمأي مجموعة 8 بتيحظر :، /، الرمز 0ما يصل إلى 107 أحرف
أميغا FFS2لانعمأي مجموعة 8 بتيحظر :، /، الرمز 0ما يصل إلى 107 أحرف
بي إف إسنعمنعمUTF-8يحظر/ما يصل إلى 255 حرفًا
PDP-11 RT-11لالاراديكس-50يصل طول الاسم الأساسي إلى 6 أحرف، بالإضافة إلى 3 أحرف كحد أقصى للامتداد.
الملفات-11 ODS-1 ( RSX-11 / IAS )لالاراديكس-50يصل طول الاسم الأساسي إلى 6 أحرف، بالإضافة إلى 3 أحرف كحد أقصى للامتداد.
الملفات-11 ODS-2 ( (Open)VMS )لالاAZ, 09, $, -,_يصل عدد الأحرف إلى 32 حرفًا لكل مكون؛ في السابق 9 أحرف لكل مكون؛ وفي الآونة الأخيرة، 255 حرفًا لاسم الملف و32 حرفًا للامتداد.
الملفات-11 ODS-5 (OpenVMS)لاابتداءً من الإصدار 7.2AZ, 09, $, -,_يصل عدد الأحرف إلى 32 حرفًا لكل مكون؛ في السابق 9 أحرف لكل مكون؛ وفي الآونة الأخيرة، 255 حرفًا لاسم الملف و32 حرفًا للامتداد.
كومودور دوسنعمنعمأي مجموعة 8 بتيحظر الأحرف :والأسماء=$عادةً، يصل إلى 16 حرفًا؛ يعتمد ذلك على محرك الأقراص
HP 250نعمنعمأي مجموعة 8 بتيحظر المسافات، "والرموز 0 و ,255:حتى 6 أحرف

انظر أيضاً

ملحوظات

  1. AUX، COM0، ...، COM9، COM¹، ...، COM³، CON، LPT0، ...، LPT9، LPT¹، ...، LPT³، NUL و PRN
  2. الأسماء المحظورة في الدليل الجذر: $AttrDef $BadClus $Bitmap $Boot $LogFile $MFT $MFTMirr pagefile.sys $Secure $UpCase $Volume $Extend $Extend\$ObjId $Extend\$Quota $Extend\$Reparse ($Extend هو دليل)
  3. بما أن Finder يعرض a:على أنه a/، فيبدو أن هذا:ممنوع بدلاً من/

مراجع

  1. ديفيد أ. ويلر (22 أغسطس 2023). "إصلاح أسماء ملفات يونكس/لينكس/بوسيكس: أحرف التحكم (مثل سطر جديد)، والشرطات البادئة، ومشاكل أخرى" . مؤرشف من الأصل في 25 مايو 2024. تم الاطلاع عليه في 14 يوليو 2024 .
  2. نظام التشغيل IBM/360: المفاهيم والميزات (ملف PDF) . IBM . 1965. ص 23. رقم الملف S360-36: النموذج C28-6535-0 . تاريخ الاسترجاع: 29 يونيو 2026 . 
  3. 1 2 3 "قواعد تسمية مجموعات البيانات" . دليل مستخدم z/OS TSO/E . شركة IBM.
  4. "اتفاقيات تسمية مجموعات البيانات" . دليل مستخدم z/OS TSO/E . شركة IBM.
  5. بروتوكول نقل الملفات (FTP) . IETF . doi : 10.17487/RFC0959 . RFC 959 .
  6. "CPM - تنسيق القرص ونظام الملفات CP/M" .
  7. "صفحة وصف أوامر Fsutil" . Microsoft.com. مؤرشفة من الأصل في 6 أكتوبر 2013. تم الاطلاع عليها في 15 سبتمبر 2013 .
  8. "الروابط الصلبة لنظام الملفات NTFS، ووصلات الدليل، واختصارات ويندوز" . فليكس هيكس . إنف سوفت وركس. مؤرشف من الأصل في 11 يوليو 2011. تم الاطلاع عليه في 12 مارس 2011 .
  9. 1 2 3 4 "تسمية الملفات والمسارات ومساحات الأسماء" . 15 ديسمبر 2022. تم الاطلاع عليه في 8 أكتوبر 2023 .
  10. "الحد الأقصى لطول المسار - تطبيقات Win32" . 18 يوليو 2022.
  11. ١ ٢ ٣ ٤ ٥ ديفيد روبنسون؛ إينوب سونغ؛ نيكولاس ويليامز (مارس ٢٠٠٦). "عروض سولاريس: أنظمة الملفات، يونيكود، والتطبيع" (ملف PDF) . سان فرانسيسكو: Sun.com. مؤرشف من النسخة الأصلية (ملف PDF) في ٤ يوليو ٢٠١٢.
  12. "أسماء الملفات التي تحتوي على علامات تشكيل" . نيد باتشيلدر. يونيو 2011. تم الاطلاع عليه في 17 سبتمبر 2013 .
  13. "الوعي بتركيب يونيكود غير المعياري - ويكي سابفيرجن" . Wiki.apache.org. 21 يناير 2013. تم الاطلاع عليه في 8 أكتوبر 2023 .
  14. "أداة إصلاح ترميز اسم الملف الإصدار 1.0" . Support.apple.com. 1 يونيو 2006. مؤرشف من الأصل في 20 نوفمبر 2009. تم الاطلاع عليه في 2 أكتوبر 2018 .
  15. "convmv - يحول أسماء الملفات من ترميز إلى آخر" . J3e.de. تم الاطلاع عليه بتاريخ 17 سبتمبر 2013 .
  16. "ردًا على: git على نظام macOS والملفات ذات أسماء الملفات المُفككة بنظام UTF-8" . KernelTrap. 7 مايو 2010. مؤرشف من الأصل في 15 مارس 2011. تم الاطلاع عليه في 5 يوليو 2010 .
  17. "اتفاقيات تسمية مسارات الملفات عبر المنصات - البرمجة العامة" . GameDev.net . تم الاطلاع عليه في 8 أكتوبر 2023 .
  18. "أسماء الملفات غير الحساسة لحالة الأحرف - موسوعة النبيذ الرسمية" . Wiki.winehq.org. 8 نوفمبر 2009. مؤرشف من الأصل في 18 أغسطس 2010. تم الاطلاع عليه في 20 أغسطس 2010 .
  19. "المواصفات الأساسية لمجموعة Open Group، الإصدار 6" . معيار IEEE 1003.1-2001 . مجموعة Open Group. 2001.
  20. "اتفاقيات تسمية ويندوز" . MSDN ، Microsoft.com. انظر البند الأخير.
  21. 1 2 تسمية ملف msdn.microsoft.com (MSDN)، قيود تسمية الملفات على نظام التشغيل Windows
  22. ملف تعليمات نظام التشغيل ويندوز 95 من مايكروسوفت، يتضمن نصائح وحيل ، مايكروسوفت، مؤرشف من الأصل في 1 نوفمبر 2014
  23. لا يمكن استخدام أسماء برامج تشغيل أجهزة MS-DOS كأسماء ملفات ، مايكروسوفت ، مؤرشف من الأصل في 20 مارس 2014
  24. ^ ريتر ، جونار (30 يناير 2007). "حكاية "aux.c"" مشروع الإرث " .
  25. alvinashcraft (26 فبراير 2024). "تسمية الملفات والمسارات ومساحات الأسماء - تطبيقات Win32" . learn.microsoft.com . تم الاطلاع عليه في 11 يونيو 2024 .
  26. نظام التشغيل ماك أو إس 8.1 - macOS
  27. macOS Sierra (10.12.4) والإصدارات الأحدث، iOS 10.3 والإصدارات الأحدث، tvOS 10.2 والإصدارات الأحدث، watchOS 3.2 والإصدارات الأحدث، iPadOS
  28. "مرجع نظام ملفات أبل" (ملف PDF) . شركة أبل.
  29. ليوين، دونالد. دليل مبرمج POSIX: كتابة برامج UNIX قابلة للنقل. 1991، دار نشر أورايلي وشركاه، سيباستوبول، كاليفورنيا، الصفحات 63-64