লিনাক্সে ফাইলের নামকরণের সময় কিছু বিশেষ অক্ষর ব্যবহার করা কি সঠিক?


18

এটি নির্দিষ্ট বিশেষ অক্ষর, হিসাবে ব্যবহার করার জন্য সঠিক হয় +, &, ', .(ডট) এবং ,(কমা), মূলত, ফাইলের নাম হবে।

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


এই ফাইলগুলির সাথে কাজ করার জন্য আপনি কোন প্রোগ্রামগুলি ব্যবহার করছেন। কেবলমাত্র এমন প্রোগ্রাম যা কিছু অক্ষরকে একটি বিশেষ উপায়ে ব্যাখ্যা করে (যেমন উদাত্ত স্ট্রিংয়ের শেলস) সমস্যা দেয়। আপনার গড় সি প্রোগ্রামটি চোখের পলক ছাড়াই এমন সমস্ত কিছু নেয় যা NUL নয়।
অ্যান্থন

9
"সঠিক" বলতে কী বোঝ?
ডেভিড রিচারবি

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

উইন্ডোজের ফাইলের নাম কী হতে পারে তার উপর কঠোর বিধিনিষেধ রয়েছে, সুতরাং যদি ফাইলগুলি সেখানে ব্যবহার করার প্রয়োজনের কোনও সম্ভাবনা থাকে তবে এটি মনোযোগ দেওয়ার মতো।
9:48 এ অসম্পূর্ণ

উত্তর:


28

+, &, ', হিসাবে কিছু নির্দিষ্ট অক্ষর ব্যবহার করা কি সঠিক? (বিন্দু) এবং, (কমা) মূলত ফাইলের নামগুলিতে।

হ্যাঁ.

সঠিক তবে প্রয়োজনীয় বা পরামর্শমূলক বা সুবিধাজনক নয়।

আপনি নাল ব্যতীত/ এবং আধুনিক ইউনিক্স এবং লিনাক্স ফাইল সিস্টেমে কোনও ফাইলের নাম বাদে যে কোনও অক্ষর ব্যবহার করতে পারেন ।

আপনি এএসসিআইআই বিরামচিহ্ন ব্যবহার করতে পারেন । কিছু ইউটিলিটি তাদের তৈরি করা ফাইলগুলির নামে স্টপ ( ডট ) এবং কমা ব্যবহার করে ।

আপনি এএসসিআইআই কন্ট্রোল অক্ষর ব্যবহার করতে পারেন তবে এটি অনস্বীকার্য কারণ এগুলি গ্রহণযোগ্যভাবে প্রদর্শিত হওয়ার সম্ভাবনা কম এবং ব্যবহার করা শক্ত are

আপনি শেল মেটা-অক্ষর যেমন ASCII অ্যাম্পারস্যান্ড এবং ASCII অ্যাডাস্ট্রোফ ব্যবহার করতে পারেন । তবে এটি অসুবিধাজনক এবং প্রয়োজন যে কমান্ডগুলি তৈরি করার সময় আপনি এই জাতীয় চরিত্রগুলি উদ্ধৃত করতে বা এড়াতে বিশেষ যত্ন নিন।

আপনি বিভিন্ন এনকোডিংগুলি ব্যবহার করে বহু-বাইট অক্ষর ব্যবহার করতে পারেন । এটি শেল এবং / অথবা ইউটিলিটিগুলির উপর নির্ভর করে অ-ASCII অক্ষরগুলির সঠিকভাবে ব্যাখ্যা এবং প্রদর্শন করতে পারে। নিজেকে ইউটিএফ -8 এর মতো জনপ্রিয় এনকোডিংয়ের মধ্যে সীমাবদ্ধ রাখার পরামর্শ দেওয়া হয় এবং যথাযথভাবে লোকাল সেট করা উচিত।

আপনার ASCII মুদ্রণযোগ্য অক্ষরগুলি ব্যবহার করে খুব কম সমস্যা দেখাবে , শেল মেটা-অক্ষর নয় এমন একটি বিরামচিহ্ন অক্ষরের সেটকে সীমাবদ্ধ করে এবং হাইফেন (বা স্টপ - যদি আপনি ফাইলটি আড়াল করতে না চান) দিয়ে নাম শুরু না করেন।


23

অন্যরা যেমন বলেছে, আধুনিক ইউনিক্স / লিনাক্স সিস্টেমগুলিতে ফাইলের নামগুলিতে \0(এন ইউ এল) এবং /(স্ল্যাশ) বাদে কোনও অক্ষর থাকতে পারে ।

এছাড়াও, পসিক্স স্ট্যান্ডার্ড ফাইলের নামের জন্য পোর্টেবল অক্ষর সেটটি সংজ্ঞায়িত করে:

3.278 পোর্টেবল ফাইলের নাম অক্ষর সেট

অক্ষরের সেট যা থেকে পোর্টেবল ফাইলের নামগুলি নির্মিত হয়।

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -

শেষ তিনটি অক্ষর হ'ল যথাক্রমে << পিরিয়ড>, <:30 স্কোর> এবং <হাইফেন> অক্ষর। পাঠ নামও দেখুন ।

GNU Coreutils এর pathchkইউটিলিটি বিকল্পটির সাথে ডাকা হলে এটি পরীক্ষা করে , এবং বিকল্পটি খালি ফাইলের নাম (যা বৈধ নয় তবে এটি একটি আর্গুমেন্ট হিসাবে পাস হতে পারে ) এবং হাইফেন ( ) দিয়ে শুরু হওয়া ফাইলের নাম সম্পর্কে সতর্ক করবে ।-p-Ppathchk-


9

সবচেয়ে নিরাপদ বেটটি হ'ল যে কোনও অপারেটিং সিস্টেমের জন্য অনুমোদিত অক্ষর সেটটির জন্য উইকিপিডিয়া প্রবেশের কথা উল্লেখ করা। এটি এখান থেকে পাওয়া যাবে

উদাহরণস্বরূপ, বেশিরভাগ ইউনিক্স ভিত্তিক সিস্টেমের জন্য অনুমোদিত অক্ষর সেটটি 8 বিট সেট এবং সংরক্ষিত অক্ষরটি নাল অক্ষর (NUL, '\0')। তবে ফাইলের নামগুলিতে বিশেষ অক্ষরগুলি মুছে ফেলার সময় তারা সমস্যা দেখা দেওয়ার কারণে এটি ব্যবহার করা ভাল অভ্যাস নয়।

উদাহরণস্বরূপ, আমার কাছে ফাইলের নাম থাকতে পারে -ramesh.txtএবং আমি নীচের মতো এটি সরিয়ে দেওয়ার চেষ্টা করি।

rm -ramesh.txt
rm: invalid option -- 'a'
Try `rm ./-ramesh.txt' to remove the file `-ramesh.txt'.
Try `rm --help' for more information.
rm "-ramesh.txt"
rm: invalid option -- 'a'
Try `rm ./-ramesh.txt' to remove the file `-ramesh.txt'.
Try `rm --help' for more information.

আমার ফাইলটি মুছে ফেলতে হবে,

rm -- "-ramesh.txt"
rm: remove regular empty file `-ramesh.txt'? y

আরও উত্তর এই উত্তর থেকে পাওয়া যাবে

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

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

সুতরাং উপসংহারে, সমস্যাটি ফাইলের নামের জন্য বিশেষ অক্ষরগুলি ব্যবহার না করে সেগুলি কীভাবে পরিচালনা করতে হয় তা নয়।


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

19
দিয়ে শুরু করা হয় নি উকিল ফাইলের নামের জন্য -কিন্তু ভালো হবে: 1) আপনি স্পষ্টভাবে এই ফাইলের নাম, 2 প্রায় কোট প্রয়োজন নেই) পরিবর্তে বিশেষ ব্যবহার --যুক্তি আপনি করতে পারে ঠিক কি rmনিজেই সুপারিশ: rm ./-ramesh.txt, তাই আপনি না প্রয়োজন এটা করতে ঠিক যেমন আপনি পরামর্শ।
মিশা পলিটোভস্কি

@ মিচা পোলিটোভস্কি কেবল আপনার উদ্ধৃতিগুলির প্রয়োজন নেই, তাদের ঠিক শূন্য প্রভাব রয়েছে।
ctrl-alt-delor

4

আপনার গবেষণা প্রায় সঠিক। ফাইলের নামগুলিতে বিশেষ অক্ষর ব্যবহার করা সম্ভব তবে এই চরিত্রগুলির বিশেষ অর্থ রয়েছে বলে এটি যুক্তিযুক্ত নয়। লিনাক্সে ফাইল নামকরণ কনভেনশনগুলি ফাইলের নামের উপর অন্যান্য বিধিনিষেধ বর্ণনা করে যেমন "ফাইলের নাম কখনও হাইফেন দিয়ে আরম্ভ করা উচিত নয়।"

ফাইলের নামগুলিতে বিশেষ অক্ষর সহ কমান্ড লাইন ক্রিয়াকলাপ সম্পাদনের সহজ উদাহরণ

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


1
সুতরাং আপনার পরামর্শ শুধুমাত্র ব্যবহার করতে হবে -, _এবং .ফাইলের নামের মধ্যে (DOT)?
ক্রিস ক্লেইন

@ ক্রিসক্লেন, হ্যাঁ, ফাইলের নামের শুরুতে না হলেও।
কেবল_মে

বিশেষ অর্থ প্রোগ্রাম (আপনার শেল যেমন), হয় না ফাইলের নাম। প্রায় ইউ & এল উপর সব প্রোগ্রাম অক্ষর যত্ন সম্পর্কে না এ সব যতদিন সেখানে ফাইলের নাম একটি NUL নয় হিসাবে।
এন্থন

@ অ্যানটন, হ্যাঁ, লিঙ্কে বর্ণিত হিসাবে আমার শেল।
কেবল_মে

2
একটি ব্যক্তিগত নোট হিসাবে, আমি বিকাশকারীদের তাদের প্রকল্পের পিতৃ ফোল্ডারের নাম "ফেডার \ t☃" এর মতো কিছু দেওয়ার পরামর্শ দিচ্ছি - যাতে তারা ভাঙা কোড বা বাইনারি প্রকাশের পরিবর্তে এই জাতীয় ফাইলের উপর যে বাগটি ভঙ্গ করে তা তত্ক্ষণাত তারা লক্ষ্য করতে পারে d অন্যদের প্রায় কাজ করতে হবে। এটি ব্যবহার করা কোনও সমস্যা নয়, যতক্ষণ না এটি 'চ' দিয়ে শুরু হয় কেবল কোনও শেলের ট্যাব-সমাপ্তি হার্ড-টাইপ স্টাফগুলিতে প্রবেশ করবে।
পিটারিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.