Rm (Unix)
আরএম (অপসারণের জন্য সংক্ষিপ্ত) ইউনিক্স এবং ইউনিক্স-সদৃশ অপারেটিং সিস্টেমের একটি মৌলিক কমান্ড যা ফাইল সিস্টেম থেকে কম্পিউটার ফাইল, ডিরেক্টরি এবং প্রতীকী লিঙ্কের মতো বস্তু এবং ডিভাইস নোড, পাইপ এবং সকেটের মতো বিশেষ ফাইলগুলি অপসারণ করতে ব্যবহৃত হয়, এমএস-ডস, ওএস/2 এবং মাইক্রোসফ্ট উইন্ডোজের ডেল কমান্ডের মতো। কমান্ডটি ই. এফ. আই শেল-এও পাওয়া যায়। আরএম কমান্ডটি আনলিঙ্ক সিস্টেম কল ব্যবহার করে ফাইল সিস্টেম থেকে বস্তুর রেফারেন্সগুলি সরিয়ে দেয়, যেখানে সেই বস্তুগুলির একাধিক রেফারেন্স থাকতে পারে (উদাহরণস্বরূপ, দুটি ভিন্ন নামের একটি ফাইল), এবং বস্তুগুলি কেবল তখনই বাতিল করা হয় যখন সমস্ত রেফারেন্সগুলি সরানো হয় এবং কোনও প্রোগ্রামের এখনও বস্তুর জন্য খোলা হ্যান্ডেল থাকে না। এটি এমন পরিস্থিতিগুলির জন্য অনুমতি দেয় যেখানে কোনও প্রোগ্রাম একটি ফাইল খুলতে পারে, অবিলম্বে ফাইল সিস্টেম থেকে এটি সরিয়ে ফেলতে পারে এবং তারপরে এটি অস্থায়ী জায়গার জন্য ব্যবহার করতে পারে, এটি জেনে যে প্রোগ্রামটি প্রস্থান করার পরে ফাইলের স্থানটি পুনরুদ্ধার করা হবে, এমনকি এটি ক্র্যাশ করে প্রস্থান করলেও। কমান্ডটি সাধারণত ফাইল ডেটা ধ্বংস করে না, কারণ এর উদ্দেশ্য আসলে কেবল রেফারেন্সগুলি সংযোগ বিচ্ছিন্ন করা, এবং মুক্ত ফাইল সিস্টেমের জায়গায় এখনও সরানো ফাইল থেকে অবশিষ্ট ডেটা থাকতে পারে। এটি কিছু ক্ষেত্রে একটি নিরাপত্তা উদ্বেগ হতে পারে, এবং কঠোর সংস্করণগুলি কখনও কখনও ডেটা মুছে ফেলার জন্য প্রদান করে কারণ শেষ লিঙ্কটি কাটা হচ্ছে, এবং শ্রেড এবং এসআরএম-এর মতো প্রোগ্রামগুলি উপলব্ধ যা বিশেষভাবে ডেটা মুছে ফেলার ক্ষমতা প্রদান করে। আরএম সাধারণত শুধুমাত্র ইউনিক্স-উদ্ভূত অপারেটিং সিস্টেমে দেখা যায়, যা সাধারণত পুনর্ব্যবহারযোগ্য বিনের মতো পদ্ধতির মাধ্যমে মুছে ফেলা ফাইলগুলির পুনরুদ্ধারের ব্যবস্থা করে না, তাই ব্যবহারকারীদের দুর্ঘটনাজনিত ফাইল মুছে ফেলা সীমাবদ্ধ করার জন্য কোনও ধরণের মোড়কের মধ্যে আরএম আবদ্ধ করার প্রবণতা রয়েছে। মুছে ফেলা যায় না এমন ইউটিলিটি রয়েছে যা সূচকটি পুনর্গঠনের চেষ্টা করবে এবং অংশগুলি পুনরায় ব্যবহার না করা হলে ফাইলটি ফিরিয়ে আনতে পারে। ইতিহাস ইউনিক্সের কিছু পুরানো সংস্করণে, rm কমান্ড ডিরেক্টরিগুলি খালি থাকলে মুছে ফেলত। এই আচরণ এখনও-ডি ফ্ল্যাগ সহ আরএম-এর কিছু সংস্করণে পাওয়া যেতে পারে, যেমন, বিএসডি (যেমন ফ্রিবিএসডি, নেটবিএসডি, ওপেনবিএসডি এবং ম্যাকোস) যা 4.4BSD-Lite2 থেকে উদ্ভূত। পল রুবিন, ডেভিড ম্যাকেঞ্জি, রিচার্ড স্টলম্যান এবং জিম মায়ারিং জি. এন. ইউ কোরুটিলস-এ বান্ডিল করা আর. এম-এর সংস্করণটি লিখেছিলেন। এই সংস্করণটি সামঞ্জস্যের ক্ষেত্রে সহায়তা করার জন্য-d বিকল্পও প্রদান করে। একই কার্যকারিতা স্ট্যান্ডার্ড rmdir কমান্ড দ্বারা সরবরাহ করা হয়। সংস্করণ 7-এ-আই বিকল্পটি ডি. এস. ডব্লিউ, বা "সুইচ থেকে মুছে ফেলুন" কে প্রতিস্থাপন করেছে, যা সংস্করণ 1-এ আবির্ভূত হয়েছিল। ডগ ম্যাকলরয় লিখেছেন যে ডি. এস. ডব্লিউ "একটি হতাশার হাতিয়ার যা অব্যক্ত নামের ফাইলগুলি পরিষ্কার করার জন্য ডিজাইন করা হয়েছিল।" কমান্ডটি মাইক্রোসফ্ট উইন্ডোজের জন্য একটি পৃথক প্যাকেজ হিসাবে সাধারণ জিএনইউ ইউনিক্স-এর মতো ইউটিলিটিগুলির নেটিভ উইন 32 পোর্টের আনক্সুটিলস সংগ্রহের অংশ হিসাবে উপলব্ধ। কলিব্রিয়োস-এ কমান্ডের বাস্তবায়ন অন্তর্ভুক্ত রয়েছে। কমান্ডটি আইবিএম আই অপারেটিং সিস্টেমেও পোর্ট করা হয়েছে। সিনট্যাক্স আরএম বিকল্পগুলি যোগ করার পরে নির্দিষ্ট ফাইলটি মুছে দেয়। ব্যবহারকারীরা মুছে ফেলার জন্য ফাইলগুলি নির্দিষ্ট করতে একটি সম্পূর্ণ পথ বা একটি আপেক্ষিক ফাইল পথ ব্যবহার করতে পারেন। আরএম default.rm দ্বারা একটি ডিরেক্টরি মুছে দেয় না ব্যবহারকারী বর্তমানে যে ডিরেক্টরিতে রয়েছে সেখানে "ফু" ফাইলটি মুছে দেয়। rm, অন্যান্য কমান্ডের মতো, এটি কীভাবে আচরণ করবে তা নির্দিষ্ট করার জন্য বিকল্পগুলি ব্যবহার করেঃ-r, "পুনরাবৃত্তিমূলক", যা ডিরেক্টরিগুলি সরিয়ে দেয়, বিষয়বস্তুগুলি পুনরাবৃত্তভাবে আগে থেকে সরিয়ে দেয় (যাতে কোনও ডিরেক্টরি ছাড়া ফাইলগুলি না থাকে)। - আই, "ইন্টারেক্টিভ" যা প্রতিটি মুছে ফেলার বিষয়টি নিশ্চিত করতে বলে। - f, "ফোর্স", যা অস্তিত্বহীন ফাইলগুলিকে উপেক্ষা করে এবং যে কোনও নিশ্চিতকরণ প্রম্পটকে ওভাররাইড করে (কার্যকরভাবে-i বাতিল করে), যদিও ডিরেক্টরিটি লিখিত-সুরক্ষিত থাকলে এটি ডিরেক্টরি থেকে ফাইলগুলি সরিয়ে দেবে না। - v, "ভার্বোস", যা টার্মিনাল-d-এ rm কী করছে তা প্রিন্ট করে, "ডিরেক্টরি", যা একটি খালি ডিরেক্টরি মুছে দেয় এবং শুধুমাত্র নির্দিষ্ট ডিরেক্টরি খালি থাকলেই কাজ করে। --এক-ফাইল-সিস্টেম, শুধুমাত্র যুক্তি হিসাবে একই ফাইল সিস্টেমে ফাইলগুলি সরিয়ে দেয় এবং মাউন্ট করা ফাইল সিস্টেমগুলিকে উপেক্ষা করবে। আরএম-কে "আরএম-আই"-এর শেল উপনাম (সি শেল ওরফে, বোর্ন শেল বা ব্যাশ) ফাংশন দ্বারা ওভারলাইন করা যেতে পারে যাতে ফাইলগুলি দুর্ঘটনাক্রমে মুছে ফেলা এড়ানো যায়। যদি কোনও ব্যবহারকারী নিশ্চিতকরণ ছাড়াই বিপুল সংখ্যক ফাইল মুছে ফেলতে চান, তবে তারা-f বিকল্পটি যোগ করে-i যুক্তিটি ম্যানুয়ালি বাতিল করতে পারেন (যেমন সম্প্রসারিত কমান্ড লাইনে পরে নির্দিষ্ট বিকল্পটি "rm-i-f" অগ্রাধিকার পায়)। দুর্ভাগ্যবশত এই পদ্ধতিটি ওয়াইল্ডকার্ডিং ব্যবহারের প্রতি বিপজ্জনক অভ্যাস তৈরি করে, যা দুর্ঘটনাজনিত অপসারণের নিজস্ব সংস্করণের দিকে পরিচালিত করে। আরএম-আরএফ (বিভিন্নভাবে, আরএম-আরএফ/, আরএম-আরএফ *, এবং অন্যান্য) প্রায়শই ইউনিক্স বিপর্যয় সম্পর্কে রসিকতা এবং উপাখ্যানগুলিতে ব্যবহৃত হয়, যেমন পিক্সারে টয় স্টোরি 2 চলচ্চিত্রের প্রযোজনার সময় অনেক ফাইল হারিয়ে যাওয়া। কমান্ডের আরএম-আরএফ/ভ্যারিয়েন্ট, যদি কোনও সুপারইউজার দ্বারা চালিত হয়, তবে বর্তমান ফাইল সিস্টেম থেকে অ্যাক্সেসযোগ্য প্রতিটি ফাইল মেশিন থেকে মুছে ফেলা হবে। মুছে ফেলার জন্য ফাইলগুলির একটি তালিকা সরবরাহ করতে rm প্রায়শই xargs-এর সাথে একত্রে ব্যবহৃত হয়ঃ xargs rm <ফাইল তালিকা অথবা, বর্তমানের নীচের সমস্ত ডিরেক্টরিতে সমস্ত পি. এন. জি চিত্র অপসারণ করতেঃ সন্ধান করুন। - নাম '*. png'-exec rm {} + অনুমতি সাধারণত, বেশিরভাগ ফাইল সিস্টেমে, একটি ফাইল মুছে ফেলার জন্য মূল ডিরেক্টরিতে লেখার অনুমতি প্রয়োজন (এবং প্রথমে ডিরেক্টরি প্রবেশ করার জন্য অনুমতি কার্যকর করতে হবে)। (মনে রাখবেন যে, নতুনদের জন্য বিভ্রান্তিকরভাবে, ফাইলের অনুমতিগুলি নিজেই অপ্রাসঙ্গিক। যাইহোক, জি. এন. ইউ. আর. এম একটি লিখিত-সুরক্ষিত ফাইল মুছে ফেলা হবে কিনা তা নিশ্চিত করার জন্য জিজ্ঞাসা করে, যদি না-f বিকল্পটি ব্যবহার করা হয়। একটি ডিরেক্টরি (rm-r সহ) মুছে ফেলার জন্য, একজনকে অবশ্যই এর সমস্ত বিষয়বস্তু পুনরাবৃত্তিমূলকভাবে মুছে ফেলতে হবে। এর জন্য অবশ্যই সেই ডিরেক্টরিটি (যদি এটি খালি না থাকে) এবং সমস্ত খালি না থাকা সাবডিরেক্টরিগুলি পুনরাবৃত্তিমূলকভাবে (যদি থাকে) পড়ার এবং লেখার এবং কার্যকর করার অনুমতি থাকতে হবে। ডিরেক্টরি মুছে ফেলার জন্য ডিরেক্টরিটির বিষয়বস্তু তালিকাভুক্ত করার জন্য পড়ার অনুমতি প্রয়োজন। এটি কখনও কখনও একটি অদ্ভুত পরিস্থিতির দিকে পরিচালিত করে যেখানে একটি অ-খালি ডিরেক্টরি মুছে ফেলা যায় না কারণ এটির লেখার অনুমতি নেই এবং তাই এর বিষয়বস্তু মুছে ফেলতে পারে না; কিন্তু যদি একই ডিরেক্টরি খালি থাকে তবে কেউ এটি মুছে ফেলতে সক্ষম হবে। যদি কোনও ফাইল স্টিকি বিট সেট সহ একটি ডিরেক্টরিতে থাকে, তবে ফাইলটি মুছে ফেলার জন্য ফাইলটির মালিক হতে হবে। ফাইল সিস্টেমের মূলের সুরক্ষা সান মাইক্রোসিস্টেমস সোলারিস 10-এ "আরএম-আরএফ/" সুরক্ষা চালু করেছে, যা 2005 সালে প্রথম প্রকাশিত হয়েছিল। কমান্ডটি কার্যকর করার পরে, সিস্টেমটি এখন রিপোর্ট করে যে/অপসারণের অনুমতি নেই। শীঘ্রই, আরএম ইউটিলিটির ফ্রিবিএসডি সংস্করণে একই কার্যকারিতা চালু করা হয়েছিল। জি. এন. ইউ. আর. এম. আর. এম-আর. এফ/এক্সিকিউট করতে অস্বীকার করে যদি-- প্রিজার্ভ-রুট বিকল্পটি দেওয়া থাকে, যা 2006 সালে জি. এন. ইউ. কোর ইউটিলিটিজ-এর সংস্করণ 6.4-এর প্রকাশের পর থেকে ডিফল্ট। নতুন সিস্টেমে, এই ফেলসেফ সবসময় সক্রিয় থাকে, এমনকি বিকল্প ছাড়াই। কমান্ডটি চালানোর জন্য, ব্যবহারকারীকে অবশ্যই সুপার ইউজার হলেও-- নো-প্রিজারভ-রুট বিকল্পটি যোগ করে ফেলসেফকে বাইপাস করতে হবে। ইউজার-প্রুফিং সিস্টেম অ্যাডমিনিস্ট্রেটর, ডিজাইনার এবং এমনকি ব্যবহারকারীরা প্রায়শই দুর্ঘটনাবশত ফাইল মুছে ফেলার বিরুদ্ধে নিজেদের রক্ষা করার চেষ্টা করে একটি উপনাম বা ফাংশন তৈরি করেঃ ওরফে আরএম = "আরএম-আই" আরএম () {/বিন/আরএম-আই "$@"; এর ফলে আরএম ব্যবহারকারীকে ফাইল-বাই-ফাইল ভিত্তিতে নিশ্চিত করতে বলে যে এটি মুছে ফেলা উচিত কিনা, ওয়াই বা এন কী টিপে। দুর্ভাগ্যবশত, এটি ব্যবহারকারীদের তাদের আরএম কমান্ডগুলিতে দেওয়া ওয়াইল্ডকার্ডগুলি সম্পর্কে অসতর্ক হতে প্রশিক্ষণ দেয়, পাশাপাশি পর্যায়ক্রমে পাউন্ড ওয়াই এবং রিটার্ন কী অপসারণের প্রবণতাকে উত্সাহিত করে-যতক্ষণ না তাদের রাখার জন্য প্রয়োজনীয় একটি ফাইল অতিক্রম করে। ব্যবহারকারীদের এমনকি "হ্যাঁ। আরএম ফাইল" পর্যন্ত যেতে দেখা গেছে, যা স্বয়ংক্রিয়ভাবে প্রতিটি ফাইলের জন্য "ওয়াই" সন্নিবেশ করে। একটি আপোষ যা ব্যবহারকারীদের মাত্র একবার নিশ্চিত করার অনুমতি দেয়, যথাযথ ওয়াইল্ডকার্ডিংকে উৎসাহিত করে এবং তালিকার যাচাইকরণকে সহজ করে তোলে যেমনঃ যদি [-এন "$পিএস 1"]; তারপর আরএম () {এলএস-এফসিএসডি "$@" ইকো 'মুছে ফেলুন [এনওয়াই]?' । tr-d '\012'; পড়ুন যদি ["_ $REPLY" = "_ y"] হয়; তারপর/বিন/rm-rf "$@" অন্যথায় প্রতিধ্বনি "(বাতিল) 'ফাই} ফাই এটি লক্ষ করা গুরুত্বপূর্ণ যে এই ফাংশনটিকে একটি শেল স্ক্রিপ্টে তৈরি করা উচিত নয়, যা অনুসন্ধান পথে সিস্টেম rm এর আগে এটি খুঁজে পাওয়ার ঝুঁকি চালাবে, এবং অ-ইন্টারেক্টিভ শেলগুলিতে এটি অনুমোদিত করা উচিত নয় যেখানে এটি ব্যাচ কাজগুলি ভেঙে দিতে পারে। যদি [-n "$পি. এস. 1"]-এ সংজ্ঞাটি অন্তর্ভুক্ত করা; তারপর.; ফাই গঠন পরেরটির বিরুদ্ধে সুরক্ষা দেয়। তৃতীয় পক্ষের বিকল্প রয়েছে যা গুরুত্বপূর্ণ ফাইলগুলির দুর্ঘটনাক্রমে মুছে ফেলা রোধ করে, যেমন "সেফ-আরএম" বা "ট্র্যাশ"। একাধিক লিনাক্স ডিস্ট্রিবিউশনে ব্যবহৃত সর্বাধিক কমান্ড লাইন আর্গুমেন্ট সীমাবদ্ধতা জিএনইউ কোর ইউটিলিটিগুলির বাস্তবায়ন কমান্ড লাইন আর্গুমেন্টে সীমাবদ্ধ থাকবে। 9ই অক্টোবর 2007-এ প্রকাশিত কার্নেলের আগে কমান্ড-লাইন আর্গুমেন্টের জন্য কার্নেলের মধ্যে বরাদ্দ করা পৃষ্ঠাগুলির সংখ্যা অন্তর্ভুক্ত/লিনাক্স/বিনএফএমটিএস. এইচ ফাইলের পরিবর্তনশীল ম্যাক্স _ এআরজি _ পেজগুলিতে কার্নেল সংকলন সময়ে সংজ্ঞায়িত করা হয়েছিল, তবে নতুন কার্নেলগুলি সর্বাধিক স্ট্যাক সীমার (উলিমিত-এস) 25 শতাংশ পর্যন্ত আর্গুমেন্টের দৈর্ঘ্য সীমাবদ্ধ করে। ত্রুটিঃ/বিন/আরএমঃ যুক্তির তালিকা খুব দীর্ঘ। যদি কমান্ড-লাইন আর্গুমেন্ট সীমা অতিক্রম করে তবে অনুরোধ করা হবে আরও দেখুন এসআরএম (ইউনিক্স): ইউনিক্স আনলিঙ্কে সুরক্ষিত অপসারণ ফাইল (): এই ইউজার স্পেস প্রোগ্রাম দ্বারা তার প্রধান কার্যকারিতার জন্য কল করা অন্তর্নিহিত সিস্টেম কল ডেল (কমান্ড) ডেল্ট্রি ডিএসডাব্লু (কমান্ড)-কঠিন ফাইল মুছে ফেলার জন্য একটি অপ্রচলিত ইউনিক্স কমান্ড রেফারেন্স আরও পড়া বাহ্যিক লিঙ্ক ফাইল মুছে ফেলা স্ট্যান্ডার্ড ইউনিক্স প্রোগ্রাম ইউনিক্স এসইউএস2008 ইউটিলিটি প্ল্যান 9 কমান্ড ইনফার্নো (অপারেটিং সিস্টেম) কমান্ড আইবিএম আই কিউশেল কমান্ড