কারেন্ট (।) এবং পিতামাত (..) ডিরেক্টরিটির জন্য প্রযুক্তিগত শব্দটি কী?


19

আমি একটি ফাংশন যা পরীক্ষা করে কিনা ফাইল নামে পাস পেয়েছিলাম .বা ..। তবে কীভাবে এটি নামকরণ করতে হয় তা আমি জানি না। এর মতো IsCurrentOrParentDirectory()কিছু অস্পষ্ট, কারণ ফাংশনটি একটি ফাইলের নাম নেয় এবং পুরো পথ নয় path (স্বজ্ঞাতভাবে কোনও সহকারী প্রোগ্রামার আশা করতেন যে /usr/আমি যখন /usr/ফিরে আসছি তখন ফিরে আসবে true, যদিও এটি আসলে তেমনটি নয়))

এই ডিরেক্টরি এন্ট্রি জন্য একটি প্রযুক্তিগত শব্দ আছে? যদি একটি থাকে তবে তা কী?


1
। এবং .. মোটেও ফাইলের নাম নয়, তবে ফোল্ডারগুলি। আপনি কেবল কেন চেক করবেন না যে ইনপুটটি কোনও বৈধ ফাইল (স্ট্যাট অনুসারে টাইপ করুন) IF_REG হয়? পিএস এটি সম্ভবত স্ট্যাকওভারফ্লোয়ের পক্ষে আরও উপযুক্ত
টনি

7
@Tonny .এবং .. হয় POSIX মান অনুযায়ী ফাইলের নাম। নীচে আমার উদ্ধৃতি দেখুন। আমি বলতে চাই এটি এখানে ঠিক আছে কারণ এটি সাধারণ কম্পিউটিং ধারণা সম্পর্কে।
12

আমাকে স্বীকার করতে হবে যে আমার শব্দটি আবার অস্পষ্ট ছিল। ফাংশন একটি একক ফাইল অথবা ডাইরেক্টরি নাম (নেয় foo.bar, foo, ...) কিন্তু একটি পাথ ( foo/bar, /foo/, ...)। ডিরেক্টরিগুলি, লিঙ্কগুলি, ইত্যাদি ফাইলগুলিও যেহেতু আমি এটিকে এটি ছেড়ে দেব।
ম্যাক্স ট্রুকসা

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

উত্তর:


23

থেকে POSIX মান :

বিশেষ ফাইলনাম ডটটি তার পূর্বসূরীর দ্বারা নির্দিষ্ট ডিরেক্টরিকে উল্লেখ করবে। বিশেষ ফাইলের নাম ডট-ডট তার পূর্বসূরীর ডিরেক্টরিটির পিতামহ নির্দেশকে উল্লেখ করবে। একটি বিশেষ ক্ষেত্রে হিসাবে, রুট ডিরেক্টরিতে, ডট-ডট নিজেই মূল ডিরেক্টরিটিকে উল্লেখ করতে পারে।

সুতরাং, সত্যিই, আপনি যদি ফাইলের নাম কিনা তা পরীক্ষা করতে চান .বা ..আপনাকে এটি কল করতে হবে IsDotOrDotDot(), বা, প্যাথনাম রেজোলিউশনের POSIX পরিভাষা ব্যবহার করে IsPredecessorOrParentOfPredecessor(), বা এমনকি PointsToPredecessorOrParentOfPrecedessor()... এমনকি আপনি ধারণাটি পেয়ে যান। সমস্যাটি হ'ল পুরো পথের নামগুলি দেখার পরে উত্তরোক্ত পরিভাষাগুলি কেবল তখনই বোধগম্য হয়। তবে কেউ তা যেভাবেই বুঝতে পারে না।

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


হয় .bash_historyবিন্দু বা বিন্দু না? আমি নিশ্চিত নই যে ওপেন প্রস্তাবিত ওপেনের চেয়ে এই ফাংশনের নামটি আরও বর্ণনামূলক।
জেনস এরট

@ জেনারেট এটি সমস্যার অপ্রাসঙ্গিক। প্রশ্ন হচ্ছে ফাইলের নাম উপাদান ছিল .বা .., এবং কিনা এটা শুধু একটা দিয়ে শুরু .। অবশ্যই ওপি'র ফাংশনটির নামটি আরও বর্ণনামূলক; প্রযুক্তিগতভাবে এটি কীভাবে উল্লেখ করা হয়েছিল আমি কেবল তাকেই নির্দেশ করছিলাম।
ছোঁয়া

2
অবশ্যই এটি হ'ল, তবে IsDotOrDotDot()ফাংশনটি আদৌ কী করছে সে সম্পর্কে কিছুই বলা যায় না।
জেনস এরাত

"পূর্বসূরি" পাথের স্পেসিফিকেশনের সাথে সাথেই পাথ উপাদানটির সাথে সাথে বোঝায়। আপনি যদি কেবল কোনও ডিরেক্টরিতে প্রবেশের নামগুলি দেখেন তবে "বর্তমান" বা "পিতামাতার" আরও ভাল পরিভাষা।
সাইমন রিখটার

2
@JensErat আমি ব্যবহার করেন IsDotOrDotDot। ফাইল সিস্টেমে ধারণাগুলি সহ যে কেউ জ্ঞাত সে তাৎক্ষণিকভাবে বুঝতে পারে। এটি .bash_history"বিন্দু" কিনা তা বিতর্কযোগ্য কারণ "ডট" এর অর্থের জন্য কোনও প্রসঙ্গ সরবরাহ করা হয় না তবে এটি অবশ্যই "বিন্দু বা বিন্দু বিন্দু" নয়।
কিনোকিজুফ

4

.এবং ..সাধারণত আপেক্ষিক পাথ বনাম পরম মত বর্ণনা করতে ব্যবহৃত হয় /usr। আমি এই পার্থক্যটি ব্যবহার করব এবং ফাংশনটি হিসাবে ঘোষণা করব IsRelativeCurrentOrParentDirectory()

সাবধান থাকুন পথের যে কোনও জায়গায় ডট-রেফারেন্স হতে পারে। কি হবে /usr/local/..?


আমি এটি উল্লেখ করতে ব্যর্থ হয়েছি যে ফাংশনটি কেবল একটি ফাইলের নাম নেয় এবং একটি পূর্ণ পথ নয়। আমি সেই অনুযায়ী প্রশ্ন আপডেট করেছি।
ম্যাক্স ট্রুকসা

2

পসিক্স স্ট্যান্ডার্ড, যা পিছলে ♦ কার্যকরভাবে উদ্ধৃত হয়েছে, বলেছেন,

বিশেষ ফাইলের নাম ডট উল্লেখ করা হবে…।  বিশেষ ফাইলের নাম ডট-ডট উল্লেখ করবে…।

(সামনে জোর দাও). সুতরাং, এটি একেবারে প্রযুক্তিগত না হলেও এটি দেখতে "বিশেষ ফাইলের নাম" বলে মনে হচ্ছে এটি কেবল সরকারী নাম। আপনার ব্যবহারকারীরা সম্ভবত এটা বুঝতে যদি আপনি আপনার ফাংশন বলা হবে নিম্নলিখিত মধ্যে একটি: IsSpecialDirectory(), IsSpecialFilename(), অথবা কেবল IsSpecialName()

বা আপনার সাথে যেতে পারে IsStandardDirectory(), IsStandardFilename()বা, IsStandardName()। এটি ইউনিক্স নামকরণ কনভেনশন অনুসরণ করে (স্ট্যান্ডার্ড ইনপুট, স্ট্যান্ডার্ড আউটপুট) যা আপনার জন্য স্বয়ংক্রিয়ভাবে প্রতিষ্ঠিত হয় (এই ক্ষেত্রে, দ্বারা mkfsএবং mkdir)।  IsAutomatic…()বা IsDefault…(), অন্যদিকে, সম্ভবত যথেষ্ট স্বজ্ঞাত নয়।


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

ভাল পরামর্শ। "বিশেষ" তবে সম্ভবত লিঙ্কগুলি, এফআইএফও ইত্যাদিরও অন্তর্ভুক্ত থাকবে, তাই না?
slhck

@ এসএলএইচকি: হ্যাঁ, ডিভাইসগুলি (যেমন, ডিস্ক এবং টিটিস) কে "বিশেষ ফাইল" বলা হয়। এবং হ্যাঁ, এই শব্দটি আলগাভাবে প্রতীকী লিঙ্ক, এফআইএফও এবং ফাইল সিস্টেমের অন্যান্য বিদেশী ডেনিজেনগুলিতে প্রয়োগ করা যেতে পারে - "নিয়মিত ফাইল" ব্যতীত যে কোনও ধরণের ফাইল (আই-নোড)। (হ্যাঁ, ডিরেক্টরিগুলিও এই বালতিতে পড়ে)) তাই খুব IsSpecialFile()খারাপ পরামর্শ দেওয়া হত। তবে আমি সেটির পরামর্শ দিইনি; আমি পরামর্শ দিলাম IsSpecialFilename()। যদিও নাম sda1, console, kmem, myfifoএবং urandomইঙ্গিতপূর্ণ, তারা সংরক্ষিত এবং মজ্জাগতভাবে বিশেষ হয় না নেই। কিন্তু ...মজ্জাগতভাবে বিশেষ ফাইলের নামের
স্কট

1

* নিক্স ওয়ার্ল্ড থেকে আমার জানা একমাত্র শব্দটি CWDবর্তমান ওয়ার্কিং ডিরেক্টরিের জন্য। এটি আসলে বেশিরভাগ ক্ষেত্রে ব্যবহৃত হয়। দেখুন, উদাহরণস্বরূপ, /proc/$$/cwdযা আপনি যে ডিরেক্টরিটি থেকে আদেশটি চালাচ্ছেন তার লিঙ্ক।

আমি কোন মান নামের জানি না ..বাদে dot-dotএবং @slhck উল্লেখ করেছিলেন যে, একটি ভাল পছন্দ নয়।


0

পিতামাতা-সন্তানের ডিরেক্টরি সম্পর্কের বিষয়ে কথা বলার ক্ষেত্রে পিক্সিক বেশ অস্পষ্ট। অন্যরা যেমন বলেছে, ./ ..অন্য মানুষের সাথে কথা বলার সময় বা যোগাযোগ করার সময় সহায়ক হয় না।

ফাইল স্ট্রাকচারগুলি গাছের ডেটা স্ট্রাকচার হিসাবে ভাবা যেতে পারে। এখানে, সাধারণত "অভিভাবক" এবং "সন্তান" বা "কন্যা" অর্থ বোঝাতে যথেষ্ট। আপনি দেখতে পাবেন ডেটা স্ট্রাকচারের পাঠ্যপুস্তকগুলি এই সম্মেলনটি বহন করে

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

আমি মনে করি IsCurrentOrUp()বা হয় IsCurrentOrParent()নামকরণ ফাংশন জন্য ভাল অনুশীলন হিসাবে যুক্তিযুক্ত হতে পারে।

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