আমি সবসময়ই আগ্রহী ছিলাম কেন একটি ডিরেক্টরিতে সমস্ত কিছু মোছার জন্য আদেশ রয়েছে rm -rf।
একই জিনিসটি করার জন্য পতাকা কেন নেই rmdir?
rmdirডিরেক্টরি ক্রিয়াকলাপের জন্য ব্যবহার করা কি আরও স্বজ্ঞাত নয় ?
আমি সবসময়ই আগ্রহী ছিলাম কেন একটি ডিরেক্টরিতে সমস্ত কিছু মোছার জন্য আদেশ রয়েছে rm -rf।
একই জিনিসটি করার জন্য পতাকা কেন নেই rmdir?
rmdirডিরেক্টরি ক্রিয়াকলাপের জন্য ব্যবহার করা কি আরও স্বজ্ঞাত নয় ?
উত্তর:
প্রথমদিকে ইউনিক্স ফাইল সিস্টেমের মধ্যে (কমপক্ষে V7 দিনের প্রায় 1970 সালে) ডিরেক্টরিগুলি বিশেষ ফাইল হিসাবে প্রয়োগ করা হয়েছিল এবং কেবলমাত্র রুট সেই mknod(2)সিস্টেম কলটি ব্যবহার করতে পারে যা তাদের তৈরি করেছিল এবং কেবলমাত্র রুটই unlink(2)একটি ডিরেক্টরি বিশেষ ফাইল করতে পারে ।
ফাইল সিস্টেম কাঠামোটি ধারাবাহিক রাখতে এই সুরক্ষাগুলি কার্যকর ছিল। উদাহরণস্বরূপ, যদি কোনও ব্যবহারকারীকে ডিরেক্টরি বিশেষ ফাইলটিতে লেখার অনুমতি দেওয়া হয়, তবে তিনি তার মূল ডিরেক্টরিটি ..নিজেই নির্দেশ করতে পারেন (বিশেষত নিজস্ব আই-নোড)। এটি ফাইল সিস্টেমে একটি বিজ্ঞপ্তি রেফারেন্স তৈরি করবে যা খারাপ কাজ হবে। অবশ্যই অন্যান্য অসঙ্গতি রয়েছে যেগুলি এটি করতে পারে, এটি কেবল একটি পরিষ্কার উদাহরণ।
ধারাবাহিকতাটি ব্যবহারকারী-স্পেস প্রোগ্রামগুলির মতো mkdir(1)এবং rmdir(1)যা সেট-ইউআইডি রুট দ্বারা পরিচালিত হয়েছিল যাতে তারা কোনও অনিবদ্ধ ব্যবহারকারীর পক্ষে সুবিধাভোগী সিস্টেম কল করতে পারে। যখন পুনরাবৃত্তি যুক্ত করা হয়েছিল rm(1), মুছে ফেলা কমান্ডটি বর্তমান ইউআইডি হিসাবে চলবে এবং তারপরে rmdir(1)খালি ডিরেক্টরিগুলি সরানোর জন্য কেবল কল করবে call এটি এখনও অনুমোদনের উত্থানের একটি দুর্দান্ত মান পদ্ধতি: আপনার প্রয়োজনের চেয়ে বেশি অনুমতি ব্যবহার করবেন না।
কিছু সময় পরে mkdir(2)এবং rmdir(2)তাদের নিজস্ব সিস্টেম কল হিসাবে যুক্ত করা হয়েছিল তবে এর মধ্যে সম্পর্ক rm(1)এবং rmdir(1)রয়ে গেছে।
ব্যক্তিগতভাবে, আমি এটিকে আরও সন্তুষ্ট মনে করি rmdir junkএবং জানি যে আমি সবচেয়ে খারাপটি খালি ডিরেক্টরিটি সরিয়েছিলাম।
rmdirএটি এখনও একটি -rপতাকা লাগবে । ( rmdir -r junkপরিবর্তে rm -r junk, এবং rmdir junkএখনও ডিরেক্টরি খালি থাকলে কেবল কাজ করে)
এটি .তিহাসিক। rmফাইলগুলির রেফারেন্সগুলি মুছে ফেলার জন্য rmdirতৈরি করা হয়েছিল, সমান্তরালভাবে ডিরেক্টরিগুলি সরানোর জন্য তৈরি করা হয়েছিল mkdir। বহু বছর আগে, ইউনিক্স rmকেবলমাত্র অনুরোধ করে ডিরেক্টরিগুলি সরিয়ে ফেলতে পারে rmdir। কোনও rmdir(2)সিস্টেম কল ছিল না , rmdirএটি একটি প্রোগ্রাম ছিল যা ডেকেছিল unlink(2)।
তথ্যসূত্র:
নিখুঁতভাবে মতামতের বিষয়, তবে ডিরেক্টরিগুলি সরানোর rmসময় ফাইলগুলি rmdirসরিয়ে দেয়। ডিরেক্টরি হ'ল একটি ফাইল, তবে একটি বিশেষ ধরণের ফাইল, সুতরাং rmএগুলি অপসারণ করার জন্য, তবে তাদের বিশেষভাবে চিকিত্সা করার জন্য (অর্থাত্ ক্ষমতা সক্ষম করার জন্য অতিরিক্ত বিকল্পের প্রয়োজন হয় to) অন্যদিকে সমস্ত ফাইল ডিরেক্টরি নয়, এবং এটি কোনও rmdirডিরেক্টরি নয় যা মুছে ফেলার জন্য আইএমএইচও-এর কোনও অর্থ নেই ।
rmএকটি খালি ডিরেক্টরি (পুনরাবৃত্ত মোড ব্যতীত) সরাতে পারবেন না ?
-rডিরেক্টরিটি বিশেষ-ফাইল বৈশিষ্ট্য সক্ষম করার জন্য এর পতাকা প্রয়োজন requires
rmdirডিরেক্টরি মুছে ফেলা,rmমুছে ফেলা।rmdirনন-ডিরেক্টরিগুলি সরানোর জন্য এটি কেন স্বজ্ঞাত হবে ?