سؤال ما هي الأسباب الفنية لعدم استخدام أحرف الفضاء في أسماء الملفات؟


أعرب شخص ما أعرفه عن تهيجه اليوم بخصوص أولئك الذين يميلون إلى عدم استخدام المساحات في أسماء الملفات لدينا ، على سبيل المثال ، NamingThingsLikeThis.txt - على الرغم من أن معظم أنظمة التشغيل الحديثة تدعم المساحات في أسماء الملفات.

هناك أسباب فنية أنه لا يزال من الشائع رؤية أسماء الملفات بدون مساحات (مناسبة)؟ إذا كان الأمر كذلك ، فما هي الأسباب التقنية التي يتم بها تجنّب الأماكن في أسماء الملفات أو عدم تشجيعها ، وما هي الظروف ذات الصلة بها؟

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


75
2017-08-25 00:25


الأصل


كما قلت ، من الأسهل التعامل معها في سطر الأوامر. ولأجل البرمجة فأنا لست متأكداً إذا كان من الممكن أو الممكن استخدام مساحات في أسماء الملفات. - Alvin Row


الأجوبة:


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

إنه لأمان أكثر أن لا يكون هناك ، حتى لو كنت متأكداً من أن الملف / dir / ما هو أبداً لن يستخدم في مثل هذا السياق.

هذا ، والعادات القديمة تموت بجد.


64
2017-08-25 00:39



انهم أيضا ألم الملكي الصحيح للتعامل مع ثم لديك لتأليف المسارات وتعديلها. التأكد من أن المكونات غير مسجلة وغير قابلة للتعديل من أجل التعديل قبل إعادة التراجع / إعادة الاقتباس ، خاصة إذا تم إرسال القطع إلى أجزاء أخرى من التعليمة البرمجية للتلاعب بها. - afrazier
إذا كنت تعتقد أن المساحات سيئة ، حاول التعامل مع الملفات ذات الخطوط الجديدة ('\n') في أسمائهم. (تسمح الأنظمة التي تشبه يونكس بالفعل بهذا ؛ Windows بشكل عام ، أو على الأقل يجعلها صعبة.) - Keith Thompson


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

(إذا حاولت تنزيل "Product List.pdf" من موقع ويب ، وانتهى الأمر بملف يسمى "Product" ، فهذا يعني أنك لم تعض بهذا ، لأن المبرمج على الطرف الآخر لم يكن يعرف أو لا يستطيع لا تختبر قواعد الاقتباس لرأس HTTP Content-Disposition.)


30
2017-08-25 01:01



+1. HTTP لبداية. يجب إفساد المسافات في عناوين URL (لأي بروتوكول ، وليس HTTP فقط) إلى٪ 20 أو +. يمكن أن تنشأ الارتباك عندما لا يتم ترميزها كما يجب أن تكون. بالنسبة لصفحات الويب ، هناك سبب مرئي لتجنب كلا الفراغ والتسطط السفلي ("_") المستخدم بشكل شائع لاستبدالهما - قد يبدو كلاهما متشابهين في رابط تحته خط ، بحيث يمكن لشخص ما نسخ الرابط يدويًا أو قراءته لشخص ما من الخطأ. - David Spillett
واحدة من أكثر الأشياء المزعجة حول المساحات التي يجب ترميزها في عناوين URL هي الميل إلى برمجيات معينة في نهاية المطاف للحفاظ على المساحات المشفرة ... - SamB
هل هذا حقيقي؟ في 2018 يحدث هذا؟ - Chris Calo
ChrisCalo قد تلاحظ أن هذه الإجابة قد تم تقديمها في عام 2009 ، وليس 2018. لكن ، نعم ، هذا ما زال يحدث في عام 2018. ربما أقل في كثير من الأحيان ، الآن أن معظم مطوري الصاعد يستخدمون أطر لبناء المواقع بدلا من القيام بكل شيء من الصفر ، لكنه لا يزال قضية. - Stobor


الكثير من الأسباب تاريخية. هذا لا يعني أنها غير منطقية اليوم.

قضايا في قابلية

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

لذلك ، طالما كان هناك أدنى احتمال بأنك قد ترغب في الوصول إلى الملف بسهولة من نظام قديم ، فستختار فقط آمنة حرف. قد يتضمن هذا تمهيدًا لنظام استرداد قديم تم الاحتفاظ به أو الخوف من أن إصدارات Windows الحديثة لا تزال تستند إلى MS-DOS بشكل ما.

الطول

قد يحد نظام الملفات من طول الملف. كان هذا أكثر خطورة خلال الأيام التي كان فيها MS-DOS يقتصر على 8.3 أسماء الملفات. بذلك ، تركت مسافات مكنك من وضع المزيد من الشخصيات ذات مغزى في الاسم.

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

شخصيات محفوظة

تعريف MS-DOS أيضاً حرف المسافة كحرف محجوز. هذا يرجع إلى حقيقة أن تم استخدام حرف الفضاء ل الحشو في FAT. بالإضافة إلى ذلك ، لم توفر MS-DOS لنظام escaping في shell.

تفسير سطر الأوامر

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

النظر في الفرق بين

rm foo bar

و

rm "foo bar"

يشير مقال WikiPedia الموضح أعلاه إلى الغموض الذي يظهر من خلال الفشل للتخلص من أمر:

يمكن منع الغموض إما عن طريق حظر المساحات المضمنة في أسماء الملفات والدليل في المقام الأول (على سبيل المثال ، عن طريق استبدالها بشُرَط سفلية '_') ، أو ، إذا كان مدعومًا بمترجم سطر الأوامر والبرامج التي تأخذ هذه المعلمات على أنها الوسيطات ، من خلال إحاطة اسم بمسافات مدمجة بين حروف اقتباس أو استخدام حرف هروب قبل المساحة ، عادة ما تكون شرطة مائلة عكسية ('\'). فمثلا

Long path/Long program name Parameter one Parameter two ...

هو غامض (هو جزء "اسم البرنامج" من اسم البرنامج ، أو معلمتين؟) ؛ ومع ذلك

Long_path/Long_program_name Parameter_one Parameter_two ...,
LongPath/LongProgramName ParameterOne ParameterTwo ...,
"Long path/Long program name" "Parameter one" "Parameter two" ...

و       Long \ path / Long \ program \ name المعلمة \ one المعلمة \ two ...

ليست غامضة.

محددات مواقع الويب (URL)

عند محاولة وصف موقع الملف ، باستخدام عنوان URL ، يجب أن يتم تجنب المسافات.

يمكن أن تكون الأحرف غير آمنة لعدد من الأسباب. الفضاء      الحرف غير آمن لأن المساحات الكبيرة قد تختفي و      قد يتم إدخال مسافات غير هامة عند نسخ عناوين URL أو تنسخها أو إخضاعها لمعالجة برامج معالجة الكلمات.

مصدر: RFC1738

وبالتالي ، يجب استبدال المساحة بـ %20 في حين أن. هذا يجعل جزء اسم الملف من عنوان URL أقل قابلية للقراءة ، وبالتالي يجعل الأشخاص يتجنبونه في المقام الأول.


28
2017-10-06 13:05



هذا الجواب جيد حقا. يجب أن يكون على القمة! - Kamil


يتم تشفير المساحات أو تحويلها إلى %20 في أسماء الملفات على الويب ، مما قد يزيد من صعوبة إدارة أصول الموقع.

وجود Image 1.png و Image%201.png غير مربكة. إنه سهل الاستخدام Image001.png في حين أن.

يقع هذا حقا تحت نفس الفئة كما تسلسل الهروب لخط الأوامر.


25
2017-08-25 02:30





في بعض الأحيان ، يمكن أن تمثل المسافات مشكلة عند التعامل مع سطر الأوامر ، أو عند استخدام نظام التشغيل القديم ، أو عند كتابة البرامج التي سيتم تجميعها على أنظمة تشغيل مختلفة ، أو عندما ... هناك العديد من الأسباب التي يمكن أن تمثل مشكلة ، وأنا لا ' أشعر حقا أنها مشكلة لكتابة الملف على النحو التالي: ملف دون-blanks.txt أو file_without_blanks.txt. أنا أفضل dask لأن الشرطة السفلية يمكن أن تصبح في بعض الأحيان غير مرئية عند التعامل مع ، على سبيل المثال ، خط تحته خط.

لكن في الغالب ، إنها مسألة العادة من الشيخوخة. التي لا أشعر أن هناك ما يكفي طليعة أسباب للتخلي.


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

ليس فقط مسافات - طول الملف أيضا يعول على شيء ما ، و IMHO ، لا ينبغي أن يكون أطول من ، دعنا نقول ، 30 حرفا. بالنسبة لأسماء الملفات الطويلة بمسافات بالداخل فهي أيضًا نعمة عند تسجيل الأقراص المضغوطة وأقراص الفيديو الرقمية ، والتي تحتاج إلى أن تقرأ تحت نظام التشغيل القديم ، وبين Win و * nix plaforms.


5
2017-08-25 00:50



مستخدمين كسلان كلمة ... - SamB