লিনাক্স / উইন্ডোজ / ইউনিক্স /… ফাইলের নাম: কোন অক্ষর অনুমোদিত? কোনটি অপ্রকাশিত?


43

কোন অক্ষর অনুমোদিত এবং তাদের মধ্যে কোনটি পৃথক অপারেটিং সিস্টেমে কমান্ড লাইনে পালাতে হবে?


নীচে কিছু দরকারী উত্তর রয়েছে, তবে আপনি কী অর্জন করার চেষ্টা করছেন? আপনার নিজের চরিত্রের হোয়াইট-লিস্টিং রুটিনগুলি কোডিং করা সম্ভবত সেরা রুট নয়।
মদিনা

সবাইকে ধন্যবাদ! সমস্ত উত্তর সহায়ক। আমার যা তথ্যের প্রয়োজন তা হ'ল: আমি একটি সরঞ্জাম লিখছি যা ফাইল সিস্টেমে ফাইলগুলির নাম পরিবর্তন করে (কোনও মেটাডেটা নয়) ট্যাগ করবে।
java.is.for.desktop

সুপারভাইজারের উত্তরও দেখুন ।
পেভিক

উত্তর:


26

ফাইলের নামগুলিতে উইকিপিডিয়া নিবন্ধে ফাইলের নাম অক্ষরের বিষয়ে আলোচনা রয়েছে ।

আপনি এই প্রবন্ধটি তথ্যপূর্ণ দেখতে পাবেন: ইউনিক্স / লিনাক্স / পসিক্স ফাইলের নামগুলি ঠিক করা

এই নিবন্ধটি ওএস এক্স এবং উইন্ডোজ এক্সপি: এক্স বনাম এক্সপি: ফাইলনামে নিষিদ্ধ অক্ষর (পিডিএফ, পিপি দেখুন প্রায় .৪-6666 দেখুন)।

That 1,000 অ্যালেক্সের জন্য ফাইলের নামগুলিতে থাকা উচিত নয়

আমি যা অক্ষরের হতে হবে জানি না উন -escaped কিন্তু লিনাক্স, এটা সম্ভবত অক্ষর যেমন "এন" (সম্পর্কে newline) বিশেষ অর্থ থাকতে পারে, "টি" (ট্যাব) এবং অন্যদের অব্যাহতি একটি ভাল ধারণা নয়, তবে ফাইল অপারেশনে এটি সাধারণত কোনও সমস্যা নয়। সম্ভবত আপনার অর্থ "অপরিবর্তিত" না হয়ে "পালানো"। সর্বাধিক সাধারণগুলির মধ্যে শেলটি স্থান যেমন "" "", "<" ইত্যাদি ব্যাখ্যা করবে সেগুলি সম্পর্কে আলোচনার জন্য আমি সংযুক্ত কিছু নিবন্ধ দেখুন।


7
এটি আসলে কোনও উত্তর নয় - সমস্ত তথ্যই বাহ্যিক। এবং সেই লিঙ্কগুলির কয়েকটি এখন ভেঙে গেছে।
স্টিভ বেনেট

26

* স্নো একটি ফাইলের নাম মঞ্জুরিপ্রাপ্ত নয় শুধুমাত্র অক্ষর NULএবং /। উইন্ডোজ কেবল NUL, :এবং \সত্যিই অনুমতি দেওয়া হয় না, কিন্তু অনেক অ্যাপস আরও, এছাড়াও প্রতিরোধ সীমিত ?, *, +, এবং %

শেল দ্বারা ব্যাখ্যা না করার জন্য কোনও প্রয়োজনে কোনও ফাইলনামে কোনও অক্ষরকে পালাতে হবে না।


দ্বিতীয় বিষয়টি জোর দেওয়ার দাবিদার। সাধারণত, "পলায়ন" শেল প্রক্রিয়াটিকে বোঝায় যা ব্যবহারকারীকে স্ট্রিং নির্দিষ্টকরণ করতে দেয় (উদাহরণস্বরূপ পাথের নাম) যাতে শরল অন্যথায় একটি বিশেষ পদ্ধতিতে আচরণ করবে এমন অক্ষর ধারণ করে। যদি ওপিটির অর্থ অন্যথায় অস্বীকৃত অক্ষরগুলিকে এনকোড করতে "শতাংশ এনকোডিং" এর মতো কিছু ব্যবহার করা হয়, তবে এটি একটি নিখুঁতভাবে প্রয়োগ স্তরের "প্যাথনাম প্রোটোকল" যা প্রতিটি জড়িত প্রোগ্রাম অবশ্যই অবলম্বন করবে (বা না)।
ক্রিস জনসন

আমি রিডডিয়ার দিয়ে একটি ফোল্ডার স্ক্যান করছি তারপরে নামগুলি দিয়ে ফাইলগুলি খোলার চেষ্টা করছি। তাদের মধ্যে কিছু ENOENT দিয়ে খুলতে ব্যর্থ হয় যা এমনকি ওএসের জন্যও প্রস্তাব দেয় কখনও কখনও আপনাকে পালাতে হয়?
gman

13

আপনি যদি নিম্নলিখিত বর্ণগুলির একটি ব্যবহার করে উইন্ডোজটিতে একটি ফাইল তৈরি করেন তবে এটি অভিযোগ করবে যে অক্ষরগুলি অনুমোদিত নয়:

\ / : * ? " < > |

একটি ভাল রেফারেন্স এখানে:

নামকরণ ফাইল, পাথ, এবং নামস্থান
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

মাইক্রোসফ্ট আরও বলেছে:

"... উইন্ডোজ-ভিত্তিক ডেস্কটপ প্ল্যাটফর্মে, অবৈধ পথের অক্ষরগুলিতে ASCII / ইউনিকোড অক্ষর 1 থেকে 31 এর মধ্যে, পাশাপাশি উদ্ধৃতি ("), (<) এর চেয়ে কম, পাইপ (|), ব্যাকস্পেস অন্তর্ভুক্ত থাকতে পারে (\ বি), নাল (\ 0) এবং ট্যাব (\ t)।

http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx


আমার কয়েক বছর আগে মনে পড়েছিল যে ইউজার-মোড উইন্ডোজটিতে কেস-সংবেদনশীল হওয়ার পাশাপাশি এই বিধিনিষেধগুলি রয়েছে ("ABC.txt" === "abc.txt")। যাইহোক, কার্নেল-মোড উইন্ডোজটির কিছু কম বিধিনিষেধ রয়েছে এবং এটি কেস-সংবেদনশীল ("* এনআইএক্সের মতো" abc.txt ")। সমস্ত উদ্দেশ্য এবং উদ্দেশ্যে, যদিও, উপরের অক্ষরগুলি বেশিরভাগ প্রোগ্রামের জন্য প্রযোজ্য হবে কারণ তারা ব্যবহারকারী-মোডে চলে run
কিউবিকসফট

আমি \ / : * ? " < > |তাদের সকলের হাত থেকে রক্ষা পেতে পারি এবং আমার জিএনইউ / লিনাক্স সিস্টেমে mkdir দিয়ে এগুলি তৈরি করতে পারি। আপনি ডিরেক্টরিটি mkdir '?'তৈরি করতেও ব্যবহার করতে পারেন ?। আমি এটি পরীক্ষা করার জন্য র‌্যামডিস্ক এবং এক্সএফএস ফাইল সিস্টেম ব্যবহার করেছি।
এস গোস্বামী

5

লিনাক্স এবং অন্যান্য POSIX সামঞ্জস্যপূর্ণ সিস্টেমে "/" এটি ডিরেক্টরি বিভাজক হিসাবে সংরক্ষিত থাকে এবং "\ 0" (NULL অক্ষর) স্ট্রিংয়ের শেষটিকে নির্ধারণ করে। অন্য সব কিছুর অনুমতি রয়েছে।


1
যদিও এটি নতুন লাইনের, ট্যাবগুলি, নিয়ন্ত্রণের অক্ষরগুলি এবং এই জাতীয় পছন্দগুলি এড়াতে এবং ফাইলের নামটি বৈধ ইউটিএফ -8 কিনা তা নিশ্চিত করার জন্য সুপারিশ করা হয়।
Flimm
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.