rm পুনরাবৃত্তি শুধুমাত্র নীচের দিকে সঠিকভাবে কাজ করে?
rm -r x yমুছে ফেলা হবে xএবং yতাদের ভিতরে থাকা সমস্ত কিছু (যদি তারা ডিরেক্টরি হয়) তবে তাদের পিতামাতা বা তাদের বাইরে কিছু নয়।
চলমান: sudo rm -R *.QTFSবর্তমান ডিরেক্টরি এবং এর শিশুদের সমস্ত * .QTFS ফাইল মুছে ফেলবে, তাইনা?
নং এটা নামে সব ফাইল মুছে ফেলবে *.QTFS, যাও recursively যে কোন ফাইল ভিতরে ডিরেক্টরি নামক *.QTFS, এবং যারা ডিরেক্টরি নিজেদের। আপনি যদি অন্য মুছে ফেলার আচরণ চান তবে ব্যবহার করুন find -delete।
বর্তমান ডিরেক্টরী হিসাবে দ্বারা প্রদর্শিত ls -lhaএছাড়াও রয়েছে .এবং ..একটি ভাল শব্দ অভাবের জন্য লিঙ্ক, কেন পুনরাবৃত্তির এই ঊর্ধ্বমুখী ডিরেক্টরি ট্রি অনুসরণ করে না? আরএম অ্যাপে কোনও কৃত্রিম সীমা রয়েছে, না .এবং ..বাস্তব জিনিসগুলি নয়?
এটি একটি কৃত্রিম সীমা rm।
এটি আসলে এত কৃত্রিম নয়, যদিও এটি কখনও কাজ করতে পারে way যদি rmপিতামাতৃত ..লিঙ্কগুলি অনুসরণ করা হয় rm -rতবে প্রত্যেকে সমস্ত ..লিঙ্কের সমস্ত পথ অনুসরণ করে সিস্টেমে প্রতিটি ফাইল সরিয়ে ফেলবে /। প্রতিটি ডিরেক্টরিতে থাকা এন্ট্রিগুলিকে rmদেখে ..এবং .এটি লিখিত সামগ্রীটি তালিকাভুক্ত করে এবং স্পষ্টতই সে কারণে তাদের উপেক্ষা করে।
বাস্তবে আপনি এটি চেষ্টা করে দেখতে পারেন। চালান rm -r .এবং বেশিরভাগ rmবাস্তবায়ন কার্যকর করতে অস্বীকার করবে, স্পষ্টভাবে একটি ত্রুটির প্রতিবেদন করবে:
$ rm -r .
rm: refusing to remove ‘.’ or ‘..’ directory: skipping ‘.’
(এই বার্তাটি জিএনইউ থেকে এসেছেrm ; অন্যরাও একই রকম)। যখন এটি স্পষ্টত যুক্তি না দিয়ে স্পষ্টভাবে এই এন্ট্রিগুলির মুখোমুখি হয়, তখন এটি কেবল তাদের উপেক্ষা করে চালিয়ে যায়। সেই আচরণটি পসিক্সের দ্বারা প্রয়োজনীয় । জিএনইউ rmএবং অনেক বিএসডি-তে, এটি fts_readহায়ারার্কি-ট্র্যাভার্সাল ফাংশনগুলির পরিবার দ্বারা স্বয়ংক্রিয়ভাবে সরবরাহ করা হয় ।
বা .এবং ..বাস্তব জিনিস না?
.এবং ..হয় সাধারণত , বাস্তব ডিরেক্টরির এন্ট্রি যদিও যে ফাইলসিস্টেম-নির্দিষ্ট। এগুলি প্রায় সর্বদা উপস্থাপিত হবে যদিও এগুলি নির্বিশেষে সমস্ত ব্যবহারকারীর কোডের আসল এন্ট্রি। rmপলাতক বা অবাঞ্ছিত পুনরাবৃত্তি ধরা বা আটকাতে সফটওয়্যারটির অনেকগুলি অংশ (কেবল নয় ) তাদের আচরণ বিশেষ করে তোলে।