আমি সবসময়ই আগ্রহী ছিলাম কেন একটি ডিরেক্টরিতে সমস্ত কিছু মোছার জন্য আদেশ রয়েছে 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
নন-ডিরেক্টরিগুলি সরানোর জন্য এটি কেন স্বজ্ঞাত হবে ?