লিনাক্স, উইন্ডোজ এবং ওএস-এক্স এর জন্য ক্রস-প্ল্যাটফর্ম ফাইলের নামগুলিতে কোন অক্ষরগুলি নিরাপদ


60

বর্তমানে, আমি YYMMDD-NAME+PAGEআমার বেশিরভাগ ফাইলের জন্য একটি নাম ব্যবহার করি। NAMEস্পেসগুলি আন্ডারস্কোরে রূপান্তরিত হয়েছে।

আমি YYYY-MM-DDতারিখের ফর্ম্যাটটি ব্যবহার করতে চাই , তবে নাম থেকে কীভাবে আলাদা করব তা নিশ্চিত নই। একটি -অদ্ভুত চেহারা তাহলে নাম একটি সংখ্যা দিয়ে শুরু হবে। আমি যদি একটি ব্যবহার করি _, তবে এটি কোনও স্থানকে উপস্থাপিত আন্ডারস্কোরের সাথে বিরোধ করে।

ফাইলের নামগুলিতে কোন চরিত্রগুলি এখানে কাজ করবে তা নিরাপদে? আমি লিনাক্সে আছি তবে আমি অন্যান্য ব্যক্তির সাথে ফাইলগুলি ভাগ করতে পারি (উইন্ডোজ।, ম্যাক ওএস এক্স)।


… ইউনিক্স, উইন্ডোজে, অমিগা 1000?
slhck

প্রায়শই আধুনিক লিনাক্স।
মার্টিন উয়েডিং

- উইন্ডোজ on এ প্রতীক ব্যবহার করা নিরাপদ .. অন্য আধুনিক অপারেটিং সিস্টেমের ক্ষেত্রেও এটি একই রকম হতে পারে .. আপনি আলাদা করতে বিয়োগ চিহ্ন ব্যবহার করতে পারেন ..
নিরঞ্জন সিং

উত্তর:


48

সারাংশ:

  • উইন্ডোজ: এএসসিআইআই এর নিয়ন্ত্রণের অক্ষরগুলি ছাড়া আর কিছু \/:*?"<>|
  • লিনাক্স, ওএস-এক্স: নাল বা ব্যতীত অন্য কিছু /

সমস্ত প্ল্যাটফর্মে ASCII কন্ট্রোল-অক্ষরগুলির মতো প্রিন্টযোগ্য অক্ষরগুলি এড়ানো ভাল।

উইন্ডোজ

উইন্ডোজে, উইন্ডোজ এক্সপ্লোরার নিয়ন্ত্রণ-অক্ষরগুলিকে অনুমতি দেয় না বা \/:*?"<>|আপনি স্পেস ব্যবহার করতে পারেন। আপনি যদি স্পেস ব্যবহার করেন, কমান্ড লাইন থেকে ব্যবহার করার সময় আপনাকে প্রায়শই ফাইলের নামটি উদ্ধৃত করতে হবে (তবে জিইউআই অ্যাপ্লিকেশনগুলি যতক্ষণ না আমি জানি তেমন প্রভাবিত হয়)। উইন্ডোজ ফাইল সিস্টেম যেমন এনটিএফএস স্পষ্টতই ফাইলের নাম সহ এনকোডিংটি সঞ্চয় করে তবে ইউটিএফ -16 স্ট্যান্ডার্ড।

উইন্ডোজের কিছু অংশ কেস-সংবেদনশীল, অন্য অংশগুলি সংবেদন-সংবেদনশীল। উইন্ডোজ এনটিএফএস ফাইল সিস্টেমে "আব" এবং "আব" এর মতো স্বতন্ত্র ফাইল নামগুলি তৈরি করা সহজ। এই নামগুলি পৃথক পৃথক ফাইল রয়েছে যা পৃথক পৃথক সামগ্রী রয়েছে to তবে, যদিও উইন্ডোজ কমান্ড-প্রম্পটটি উভয় ফাইলকে ব্যবহার করে আনন্দের সাথে তালিকাভুক্ত করবে dir, আপনি কমান্ডগুলি ব্যবহার করে সহজেই তাদের কোনওটির অ্যাক্সেস বা পরিচালনা করতে পারবেন না type। নিচে দেখ.

লিনাক্স, ওএস-এক্স

লিনাক্স এবং ওএস-এক্স-এ কেবল /মুদ্রণযোগ্য এএসসিআইআই সেট নিষিদ্ধ করা হয়েছে আমার বিশ্বাস। কিছু অক্ষর (শেল মেটাচার্যাক্টারের মতো *?!) কমান্ড লাইনে সমস্যা সৃষ্টি করবে এবং ফাইলের নামটি যথাযথভাবে উদ্ধৃত করা বা পালাতে হবে।

লিনাক্স ফাইল সিস্টেমগুলি যেমন ext2, ext3 হ'ল অক্ষর-সেট অজিনোস্টিক (আমার মনে হয় তারা এটিকে কেবল কম-বেশি বাইট স্ট্রিম হিসাবে বিবেচনা করে - কেবল নাল এবং /নিষিদ্ধ)। এর অর্থ আপনি ইউটিএফ -8 এনকোডিংয়ে ফাইলের নাম সংরক্ষণ করতে পারেন। আমি বিশ্বাস করি যে প্রদর্শন বা প্রক্রিয়াজাতকরণের জন্য ফাইলের নামটি সঠিকভাবে রূপান্তর করতে কোন এনকোডিংটি ব্যবহার করা হবে তা জানা শেল বা অন্যান্য অ্যাপ্লিকেশনটির উপর নির্ভর করে।

উপসংহার

সুতরাং আপনি সম্ভবত নিরাপদে কিছু ব্যবহার করতে পারেন (যদি এটি টাইপ করা এত কঠিন না হত)


কেস- (ইন) উইন্ডোজে সংবেদনশীলতা

C> dir /B
Ab
aB
аB

C> type Ab
b
b

C> type aB
b
b

C> type аB
unicode homograph

মনে রাখবেন যে আমরা দ্বিতীয় ফাইলের বিষয়বস্তু টাইপ করতে পারি না, উইন্ডোজ typeকমান্ড কেবল আবের বিষয়বস্তুগুলির পরিবর্তে ফিরে আসে। তৃতীয় ফাইলটি লিনাক্সের এবি থেকে পৃথক হবে।

(উইন্ডোজ 10 এনটিএফএস)।


1
সব মিলিয়ে একটি ভাল উত্তর, তবে আমি স্পেসে ফাইলের নাম ব্যবহার করা থেকে বিরত থাকব। সমস্ত প্রসঙ্গে যথাযথভাবে সেগুলি ছেড়ে যাওয়া তার পক্ষে মূল্যমানের চেয়ে বেশি সমস্যা। লক্ষ করুন যে মাইক্রোসফ্ট সিস্টেম ডিরেক্টরি নামগুলিতে স্থান ব্যবহার বন্ধ করে দিয়েছে। যদি আপনাকে নামের সাথে শব্দের সীমানা নির্দেশ করতে হয় তবে ক্যামেলকেস ভাল কাজ করে।
আইজাক রবিনোভিচ

4
"সি: in প্রোগ্রাম ফাইলগুলি (x86)" এখনও উইন 8-এ বিদ্যমান - এটি কি কোনও সিস্টেম ডিরেক্টরি নয়? আমি একমত যে স্থানগুলি সমস্যার কারণ হতে পারে।
রেডগ্রিটিব্রিক

এটি হ'ল তবে এটির নামকরণও বেশ কিছুতে হতে পারে। অবশ্যই, আপনি যদি এটির নাম "]: oo foobar" রাখেন তবে প্রচুর প্রোগ্রাম ফ্রিক আউট হবে তবে উইন্ডোজ এটিকে যাইহোক "% প্রোগ্রামফিল (x86)%" হিসাবে উল্লেখ করেছে।
টমাসকে

2
এখানে সত্যিই মনে রাখার মতো কিছু, লিনাক্স সিস্টেম বড় হাতের এবং নীচেরটিকে পৃথক হিসাবে বিবেচনা করতে সক্ষম হয়, যদিও উইন্ডোজ তাদেরকে একই বলে বিবেচনা করে।
thecoshman

1
আপনি বিস্মিত হবেন যে কতগুলি প্রোগ্রাম পার্সিংয়ের সময়ে চুষে যায়। সে কারণেই উইন্ডোজ 9. ছিল না
আইজাক রবিনোভিচ

46

যদিও রেডগ্রিটিব্রিকের উত্তর প্রযুক্তিগতভাবে সঠিক, তবে সুরক্ষা একমাত্র সমস্যা নয়: ব্যবহারযোগ্যতাও গুরুত্বপূর্ণ। আমি মনে করি একটি ভাল প্রশ্ন হ'ল "ফাইলের নামগুলিতে কোন অক্ষরগুলি ব্যবহার করা ভাল" "

কিছু সম্ভাব্য নির্দেশিকা:

  • [0-9a-zA-Z_] - বর্ণানুক্রমিক অক্ষর এবং আন্ডারস্কোর সর্বদা ব্যবহার করা ভাল।
  • \/:*?"<>|এবং নাল বাইট কমপক্ষে একটি সিস্টেমে সমস্যাযুক্ত এবং সর্বদা এড়ানো উচিত ।
  • স্পেসগুলি অনেক সিস্টেমে আর্গুমেন্ট বিভাজক হিসাবে ব্যবহৃত হয়, সুতরাং স্পেস যুক্ত ফাইলের নামগুলি সম্ভব হলে এড়ানো উচিত। অন্যান্য সাদা জায়গা (যেমন ট্যাবগুলি) আরও বেশি।
  • সেমিকোলন (;) অনেক সিস্টেমে পৃথক কমান্ড ব্যবহার করতে ব্যবহৃত হয়। সেমিকোলন এবং কমা (,) উইন্ডোজ কমান্ড লাইনে (কিছু সংস্করণ?) কমান্ড লাইন আর্গুমেন্ট পৃথক করতে ব্যবহৃত হয় ।
  • []()^ #%&!@:+={}'~এবং [`] অনেকগুলি শেলের সকলেরই বিশেষ অর্থ রয়েছে এবং আশেপাশে কাজ করা বিরক্তিকর, এবং তাই এড়ানো উচিত। তারা ইউআরএলগুলিতে ভয়াবহ দেখতেও ঝোঁক
  • এড়াতে নেতৃস্থানীয় চরিত্রগুলি :
    • অনেক কমান্ড লাইন প্রোগ্রাম বিশেষ যুক্তি নির্দেশ করতে হাইফেন [-] ব্যবহার করে ।
    • * নিক্স ভিত্তিক সিস্টেমগুলি গোপন ফাইল এবং ডিরেক্টরিগুলির জন্য একটি শীর্ষস্থানীয় চরিত্র হিসাবে একটি পূর্ণ বিরতি [।] ব্যবহার করে।
  • এএসসিআইআই সেটে থাকা কোনও কিছুই পুরানো বা ততোধিক বুনিয়াদি সিস্টেমে সমস্যা সৃষ্টি করতে পারে (যেমন কিছু এমবেডেড সিস্টেম), এবং যত্ন সহ ব্যবহার করা উচিত।

এটি আপনাকে মূলত:

[0-9a ZA-জেড -._]

যা সর্বদা নিরাপদ এবং ব্যবহারে বিরক্তিকর নয় (যতক্ষণ না আপনি ফাইলের নাম একটি আলফা-সংখ্যাসূচক দিয়ে শুরু করেন) :)


1
ধনুর্বন্ধনী ( []) নিয়মিত প্রকাশের অংশ এবং শেলটিরও বিশেষ অর্থ রয়েছে। তবে কিছু খারাপ কর্নার কেস বাদ দিয়ে তারা কাজ করার মতো খারাপ নয়।
মার্টিন উডিং 13 'এ

1
এইচআরএম ... আমি অনুমান করি ()আসলে এটি সম্পর্কেও বলা যেতে পারে ।
naught101

4
Zsh এ, যে চরিত্রগুলি আলাদাভাবে ব্যাখ্যা করা যেতে পারে সেগুলি অন্তর্ভুক্ত করে []()^;, তাই আমার মনে হয় সঠিক উত্তরটি [0-9a-zA-Z.,_-]সম্ভবত কমা হতে পারে কেবল কোনও ফাইলনামে দেখতে অদ্ভুত কারণেই বাদ দেওয়া যেতে পারে, যদিও আমি এটির সত্যিকারের ক্ষেত্রে ভাবতে পারি না যেখানে এটি ঘটবে where সমস্যা।
কেসি রডর্মার

হ্যাঁ, আমি তাদের চূড়ান্ত তালিকা থেকে
সরিয়েছি

1
কমা বিরক্তিকর হতে পারে, echo whereami > a,b,cWin10 কমান্ড প্রম্পট উইন্ডোটিতে চেষ্টা করুন ।
রেডগ্রিটিব্রিক

4

আপনি করতে পারেন:

  1. বর্তমান আন্ডারস্কোরগুলি প্রতিস্থাপন করুন #(স্থানের জন্য প্রুফারিডারের প্রতীক)
  2. ফাইলের নাম থেকে 'বিভাগ' তারিখের আন্ডারস্কোর (অথবা দ্বিতীয় হাইফেন - টাইপ করা সহজ)

অল্টার-1। প্রাথমিক ক্যাপগুলি স্থানগুলি প্রতিস্থাপন করতে পারে: YYMMDD-HHMM-FileName.extবাYYMMDD-HHMM_FileName.ext

স্পষ্ট প্রদর্শনের জন্য ন্যূনতম অক্ষরগুলি, যা জানু-সেপ্টেম্বরের জন্য প্যাডযুক্ত শূন্যগুলির সাথে স্বয়ংক্রিয়ভাবে সাজায় (এবং 1 ম -9 ম ই)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.