Rm (Unix)
آر ایم (ہٹانے کے لیے مختصر) یونکس اور یونکس جیسے آپریٹنگ سسٹمز پر ایک بنیادی کمانڈ ہے جو کمپیوٹر فائلوں، ڈائریکٹریز اور فائل سسٹمز سے علامتی لنکس جیسے اشیاء کو ہٹانے کے لیے استعمال ہوتی ہے اور ڈیوائس نوڈس، پائپز اور ساکٹ جیسی خصوصی فائلیں بھی، جیسے ڈیل کمانڈ MS-DOS، OS/2، اور مائیکروسافٹ ونڈوز میں۔ کمانڈ ای ایف آئی شیل میں بھی دستیاب ہے۔ آر ایم کمانڈ ان لنک سسٹم کال کا استعمال کرتے ہوئے فائل سسٹم سے آبجیکٹ کے حوالہ جات کو ہٹا دیتی ہے، جہاں ان آبجیکٹ کے متعدد حوالہ جات ہو سکتے ہیں (مثال کے طور پر، دو مختلف ناموں والی فائل)، اور آبجیکٹ خود تب ہی ضائع ہوتے ہیں جب تمام حوالہ جات ہٹا دیے جاتے ہیں اور اب بھی کسی بھی پروگرام میں آبجیکٹ کے لیے کھلے ہینڈل نہیں ہوتے ہیں۔ یہ ایسے منظرناموں کی اجازت دیتا ہے جہاں کوئی پروگرام فائل کھول سکتا ہے، اسے فوری طور پر فائل سسٹم سے ہٹا سکتا ہے، اور پھر اسے عارضی جگہ کے لیے استعمال کر سکتا ہے، یہ جانتے ہوئے کہ پروگرام کے باہر نکلنے کے بعد فائل کی جگہ دوبارہ حاصل کر لی جائے گی، چاہے وہ کریش ہو کر ہی باہر نکل جائے۔ کمانڈ عام طور پر فائل کے ڈیٹا کو تباہ نہیں کرتی ہے، کیونکہ اس کا مقصد واقعی صرف حوالہ جات کو ان لنک کرنا ہے، اور فائل سسٹم کی خالی جگہ میں اب بھی ہٹائی گئی فائل سے بچا ہوا ڈیٹا ہو سکتا ہے۔ یہ کچھ معاملات میں حفاظتی تشویش کا باعث بن سکتا ہے، اور سخت ورژن بعض اوقات ڈیٹا کو مٹانے کے لیے فراہم کرتے ہیں کیونکہ آخری لنک کاٹا جا رہا ہے، اور شیریڈ اور ایس آر ایم جیسے پروگرام دستیاب ہیں جو خاص طور پر ڈیٹا مسح کرنے کی صلاحیت فراہم کرتے ہیں۔ آر ایم عام طور پر صرف یونکس سے ماخوذ آپریٹنگ سسٹمز پر دیکھا جاتا ہے، جو عام طور پر ری سائیکل بن جیسے میکانزم کے ذریعے حذف شدہ فائلوں کی بازیابی کے لیے فراہم نہیں کرتے ہیں، اس لیے صارفین کے لیے حادثاتی فائل کو حذف کرنے کو محدود کرنے کے لیے کسی قسم کے ریپر میں آر ایم کو منسلک کرنے کا رجحان ہے۔ ایسی غیر حذف شدہ یوٹیلیٹیز ہیں جو انڈیکس کو دوبارہ بنانے کی کوشش کریں گی اور اگر حصوں کو دوبارہ استعمال نہیں کیا گیا تو فائل کو واپس لا سکتی ہیں۔ یونکس کے کچھ پرانے ورژن پر، آر ایم کمانڈ ڈائریکٹریز کو حذف کر دے گی اگر وہ خالی ہوں۔ یہ طرز عمل اب بھی-d پرچم کے ساتھ rm کے کچھ ورژن میں حاصل کیا جا سکتا ہے، مثال کے طور پر، بی ایس ڈی (جیسے فری بی ایس ڈی، نیٹ بی ایس ڈی، اوپن بی ایس ڈی اور میک او ایس) 4.4BSD-Lite2 سے ماخوذ ہیں۔ جی این یو کوریوٹلز میں بنڈل کردہ آر ایم کا ورژن پال روبن، ڈیوڈ میک کینزی، رچرڈ اسٹالمین اور جم میئرنگ نے لکھا تھا۔ یہ ورژن مطابقت میں مدد کے لیے-d آپشن بھی فراہم کرتا ہے۔ وہی فعالیت معیاری rmdir کمانڈ کے ذریعے فراہم کی جاتی ہے۔ ورژن 7 میں-i آپشن نے ڈی ایس ڈبلیو، یا "ڈیلیٹ فرام سوئچز" کی جگہ لے لی، جس کا آغاز ورژن 1 میں ہوا۔ ڈوگ میک الروئے نے لکھا ہے کہ ڈی ایس ڈبلیو "ایک مایوس کن ٹول تھا جسے ناقابل بیان ناموں والی فائلوں کو صاف کرنے کے لیے ڈیزائن کیا گیا تھا۔" کمانڈ مائیکروسافٹ ونڈوز کے لیے ایک علیحدہ پیکیج کے طور پر دستیاب ہے جو کہ عام جی این یو یونکس جیسی افادیت کے مقامی ون 32 بندرگاہوں کے انکس یوٹلس مجموعہ کے حصے کے طور پر دستیاب ہے۔ کولیبری او ایس میں کمانڈ کا نفاذ شامل ہے۔ کمانڈ کو آئی بی ایم آئی آپریٹنگ سسٹم میں بھی پورٹ کیا گیا ہے۔ نحو آر ایم آپشنز کے شامل ہونے کے بعد مخصوص فائل کو حذف کر دیتا ہے۔ صارفین حذف کرنے کے لیے فائلوں کی وضاحت کے لیے مکمل راستہ یا متعلقہ فائل کا راستہ استعمال کر سکتے ہیں۔ آر ایم کسی ڈائرکٹری کو default.rm فو کے ذریعے حذف نہیں کرتا ہے اس ڈائرکٹری میں موجود فائل "فو" کو حذف کرتا ہے جس میں صارف اس وقت موجود ہے۔ rm، دیگر کمانڈوں کی طرح، یہ بتانے کے لیے آپشنز کا استعمال کرتا ہے کہ یہ کس طرح برتاؤ کرے گا:-r، "ریکرسو"، جو ڈائریکٹریز کو ہٹا دیتا ہے، مواد کو پہلے سے ہی ریکرسو طور پر ہٹا دیتا ہے (تاکہ فائلوں کو ڈائریکٹری کے بغیر نہ چھوڑا جائے)۔ - i، "انٹرایکٹو" جو ہر حذف کرنے کی تصدیق کا مطالبہ کرتا ہے۔ - f، "فورس"، جو غیر موجود فائلوں کو نظر انداز کرتا ہے اور کسی بھی تصدیق کے اشارے کو مسترد کرتا ہے (مؤثر طریقے سے-i کو منسوخ کرتا ہے)، حالانکہ اگر ڈائرکٹری تحریری طور پر محفوظ ہے تو یہ ڈائرکٹری سے فائلوں کو نہیں ہٹائے گا۔ - v، "verbose"، جو پرنٹ کرتا ہے کہ rm ٹرمینل-d پر کیا کر رہا ہے، "ڈائرکٹری"، جو ایک خالی ڈائرکٹری کو حذف کرتی ہے، اور صرف اس صورت میں کام کرتی ہے جب مخصوص ڈائرکٹری خالی ہو۔ --ایک فائل سسٹم، صرف اسی فائل سسٹم پر فائلوں کو ہٹا دیتا ہے جیسا کہ دلیل ہے، اور نصب شدہ فائل سسٹم کو نظر انداز کر دے گا۔ آر ایم کو "آر ایم-آئی" کے شیل عرف (سی شیل عرف، بورن شیل یا بیش) فنکشن کے ذریعے اوور لائن کیا جا سکتا ہے تاکہ فائلوں کو حادثاتی طور پر حذف کرنے سے بچایا جا سکے۔ اگر کوئی صارف اب بھی تصدیق کے بغیر بڑی تعداد میں فائلوں کو حذف کرنا چاہتا ہے، تو وہ دستی طور پر-f آپشن شامل کرکے-i دلیل کو منسوخ کر سکتا ہے (جیسا کہ توسیع شدہ کمانڈ لائن "rm-i-f" پر بعد میں بیان کردہ آپشن کو ترجیح دی جاتی ہے)۔ بدقسمتی سے یہ نقطہ نظر وائلڈ کارڈنگ کے استعمال کی طرف خطرناک عادات پیدا کرتا ہے، جس کی وجہ سے حادثاتی ہٹانے کا اپنا ورژن سامنے آتا ہے۔ آر ایم-آر ایف (مختلف طور پر، آر ایم-آر ایف /، آر ایم-آر ایف *، اور دیگر) اکثر یونیکس آفات کے بارے میں لطیفوں اور قصوں میں استعمال ہوتا ہے، جیسے کہ پکسر میں فلم ٹوائے اسٹوری 2 کی تیاری کے دوران بہت سی فائلوں کا ضائع ہونا۔ کمانڈ کا rm-rf/متغیر، اگر کسی سپر یوزر کے ذریعے چلایا جاتا ہے، تو موجودہ فائل سسٹم سے قابل رسائی ہر فائل کو مشین سے حذف کر دیا جائے گا۔ rm کو اکثر xargs کے ساتھ مل کر حذف کرنے کے لیے فائلوں کی فہرست فراہم کرنے کے لیے استعمال کیا جاتا ہے: xargs rm <فائل لسٹ یا، موجودہ کے نیچے تمام ڈائریکٹریز میں موجود تمام PNG امیجز کو ہٹانے کے لیے: تلاش کریں۔ - نام '*. png'-exec rm {} + اجازتات عام طور پر، زیادہ تر فائل سسٹمز پر، فائل کو حذف کرنے کے لیے پیرنٹ ڈائرکٹری پر لکھنے کی اجازت درکار ہوتی ہے (اور اجازت پر عمل درآمد، پہلی جگہ میں ڈائرکٹری درج کرنے کے لیے)۔ (نوٹ کریں کہ، مبہم طور پر ابتدائی افراد کے لیے، فائل پر موجود اجازتات غیر متعلقہ ہیں۔ تاہم، جی این یو آر ایم تصدیق کے لیے پوچھتا ہے کہ آیا تحریری طور پر محفوظ فائل کو حذف کرنا ہے، جب تک کہ-f آپشن استعمال نہ کیا جائے۔) ڈائریکٹری کو حذف کرنے کے لیے (rm-r کے ساتھ)، کسی کو اس کے تمام مندرجات کو بار بار حذف کرنا ہوگا۔ اس کے لیے ضروری ہے کہ کسی کو اس ڈائرکٹری کو پڑھنے اور لکھنے اور اس پر عمل درآمد کی اجازت ہونی چاہیے (اگر یہ خالی نہیں ہے) اور تمام غیر خالی ذیلی ڈائریکٹریز کو بار بار (اگر کوئی ہیں)۔ ڈائریکٹری کے مندرجات کو حذف کرنے کے لیے ان کی فہرست بنانے کے لیے پڑھنے کی اجازت درکار ہوتی ہے۔ یہ بعض اوقات ایک عجیب صورتحال کا باعث بنتا ہے جہاں خالی نہ ہونے والی ڈائرکٹری کو حذف نہیں کیا جا سکتا کیونکہ کسی کے پاس اس کی تحریری اجازت نہیں ہے اور اس لیے اس کے مندرجات کو حذف نہیں کیا جا سکتا ؛ لیکن اگر وہی ڈائرکٹری خالی تھی، تو کوئی اسے حذف کر سکے گا۔ اگر کوئی فائل چپچپا بٹ سیٹ والی ڈائرکٹری میں رہتی ہے، تو فائل کو حذف کرنے کے لیے فائل کا مالک ہونا ضروری ہے۔ سن مائیکرو سسٹمز نے سولرس 10 میں "آر ایم-آر ایف/" تحفظ متعارف کرایا، جو پہلی بار 2005 میں جاری کیا گیا تھا۔ کمانڈ پر عمل درآمد کرنے کے بعد، سسٹم اب رپورٹ کرتا ہے کہ/کو ہٹانے کی اجازت نہیں ہے۔ کچھ ہی دیر بعد، اسی فعالیت کو آر ایم یوٹیلیٹی کے فری بی ایس ڈی ورژن میں متعارف کرایا گیا۔ جی این یو آر ایم آر ایم-آر ایف/کو انجام دینے سے انکار کرتا ہے اگر-- محفوظ کریں-جڑ کا آپشن دیا گیا ہے، جو کہ جی این یو کور یوٹیلیٹیز کے ورژن 6.4 کے 2006 میں جاری ہونے کے بعد سے ڈیفالٹ رہا ہے۔ نئے سسٹمز میں، یہ فیل سیف ہمیشہ فعال رہتا ہے، یہاں تک کہ آپشن کے بغیر بھی۔ کمانڈ کو چلانے کے لیے، صارف کو-- کوئی محفوظ نہیں-جڑ کا آپشن شامل کرکے فیل سیف کو بائی پاس کرنا ہوگا، چاہے وہ سپر یوزر ہی کیوں نہ ہوں۔ یوزر پروفنگ سسٹمز کے منتظمین، ڈیزائنرز، اور یہاں تک کہ صارفین بھی اکثر غلطی سے فائلوں کو حذف کرنے کے خلاف اپنا دفاع کرنے کی کوشش کرتے ہیں اور اس طرح عرفیت یا فنکشن بناتے ہیں: عرف rm = "rm-i" rm () {/bin/rm-i "$@" ؛} اس کے نتیجے میں rm صارف سے فائل بہ فائل کی بنیاد پر تصدیق کرنے کے لیے کہتا ہے کہ آیا اسے حذف کیا جانا چاہیے، Y یا N کلید دبا کر۔ بدقسمتی سے، یہ صارفین کو تربیت دیتا ہے کہ وہ اپنے آر ایم کمانڈوں میں حوالے کیے جانے والے وائلڈ کارڈز کے بارے میں لاپرواہی کا مظاہرہ کریں، ساتھ ہی متبادل طور پر پونڈ وائی اور واپسی کی کلید کو ہٹانے کی تصدیق کرنے کے رجحان کی حوصلہ افزائی کریں-جب تک کہ وہ ایک فائل کو پاس نہ کر لیں جسے انہیں رکھنے کی ضرورت تھی۔ یہاں تک کہ صارفین کو "ہاں | rm فائلوں" تک جاتے ہوئے دیکھا گیا ہے، جو خود بخود ہر فائل کے لیے "y" داخل کرتی ہیں۔ ایک سمجھوتہ جو صارفین کو صرف ایک بار تصدیق کرنے کی اجازت دیتا ہے، مناسب وائلڈ کارڈنگ کی حوصلہ افزائی کرتا ہے، اور فہرست کی تصدیق کو آسان بناتا ہے، کچھ اس طرح سے حاصل کیا جا سکتا ہے: اگر [-n "$ps1"] ؛ پھر rm () {ls-fcsd "$@" echo "ہٹائیں [ny]؟ ' | ٹر-ڈی '\012' ؛ پڑھیں اگر ["_ $REPLY" = "_ y"] ؛ پھر/بن/آر ایم-آر ایف "$@" ایکلیس ایکو "(منسوخ) 'فائی} فائی یہ نوٹ کرنا ضروری ہے کہ اس فنکشن کو شیل اسکرپٹ میں نہیں بنایا جانا چاہیے، جس سے اسے سرچ پاتھ میں سسٹم آر ایم سے پہلے پائے جانے کا خطرہ ہو، اور نہ ہی غیر انٹرایکٹو شیلز میں اس کی اجازت ہونی چاہیے جہاں یہ بیچ جابز کو توڑ سکتا ہے۔ اگر [-n "$ps1"] میں تعریف کو بند کرنا ؛ پھر. ؛ فائی تعمیر مؤخر الذکر کے خلاف حفاظت کرتا ہے۔ تیسرے فریق کے متبادل موجود ہیں جو اہم فائلوں کو حادثاتی طور پر حذف کرنے سے روکتے ہیں، جیسے "سیف-آر ایم" یا "ٹریش"۔ زیادہ سے زیادہ کمانڈ لائن دلیل کی حد متعدد لینکس تقسیم میں استعمال ہونے والی جی این یو کور یوٹیلیٹیز کا نفاذ کمانڈ لائن دلائل بائٹس میں محدود ہوگا۔ ان صفحات کی تعداد جو کرنل کے اندر کمانڈ لائن دلائل کے لیے مختص کیے گئے ہیں اس سے پہلے کہ کرنل 2.6.23 9 اکتوبر 2007 کو جاری کیا گیا تھا جس کی وضاحت کرنل مرتب کرنے کے وقت متغیر MAX _ ARG _ PAGES پر شامل/Linux/binfmts. h فائل میں کی گئی تھی لیکن نئے دانے زیادہ سے زیادہ دلیل کی لمبائی کو زیادہ سے زیادہ اسٹیک کی حد (ulimit-s) کے 25 ٪ تک محدود کرتے ہیں۔ غلطی:/بن/آر ایم: دلیل کی فہرست بہت لمبی ہے۔ اگر کمانڈ لائن دلیل کی حد سے تجاوز کر گئی ہے تو اشارہ کرے گا ایس آر ایم (یونکس) بھی دیکھیں: یونکس ان لنک () میں محفوظ ہٹائیں فائل: اس یوزر اسپیس پروگرام کی طرف سے اس کی مرکزی فعالیت کے لیے بلائی جانے والی بنیادی سسٹم کال ڈیل (کمانڈ) ڈیلٹری ڈی ایس ڈبلیو (کمانڈ)-مشکل فائلوں کو حذف کرنے کے لیے ایک متروک یونکس کمانڈ حوالہ جات مزید پڑھنے بیرونی لنکس فائل ڈیلیشن اسٹینڈرڈ یونکس پروگرام یونکس ایس یو ایس 2008 یوٹیلیٹیز پلان 9 کمانڈز انفرنو (آپریٹنگ سسٹم) کمانڈز آئی بی ایم آئی کیو شیل کمانڈز