আপনি যখন কোনও ফাইল মুছবেন তখন আপনি সত্যই ফাইলটির একটি লিঙ্ক সরিয়ে ফেলবেন (ইনোডে)। যদি কারও কাছে ইতিমধ্যে সেই ফাইলটি খোলা থাকে তবে তারা তাদের কাছে থাকা ফাইলের বিবরণী রাখতে পারে। ফাইলটি ডিস্কে থেকে যায়, স্থান গ্রহণ করে, এবং এতে অ্যাক্সেস থাকলে আপনার কাছে এটি লেখা এবং পড়া যায়।
unlink
ফাংশন POSIX এই আচরণ সঙ্গে সংজ্ঞায়িত করা হয়:
যখন ফাইলটির লিঙ্ক গণনা 0 হয়ে যায় এবং কোনও প্রক্রিয়াতে ফাইলটি খোলা থাকে না, তখন ফাইল দ্বারা দখল করা স্থানটি মুক্ত করা হবে এবং ফাইলটি আর অ্যাক্সেসযোগ্য হবে না। শেষ লিঙ্কটি সরানোর সময় যদি এক বা একাধিক প্রক্রিয়াতে ফাইলটি খোলা থাকে, লিঙ্কটি আনলিংক () ফেরতের আগে মুছে ফেলা হবে তবে ফাইলের সমস্ত উল্লেখ বন্ধ না হওয়া পর্যন্ত ফাইলের বিষয়বস্তু অপসারণ স্থগিত করা হবে ।
এই আচরণের কারণে এই টুকরো পরামর্শ। ডিমনটির ফাইলটি খোলা থাকবে এবং এটি লক্ষ্য করা যাবে না যে এটি মুছে ফেলা হয়েছে (যদি না এটি এটি সুনির্দিষ্টভাবে পর্যবেক্ষণ না করে, যা অস্বাভাবিক)। এটি বিদ্যমান ফাইল বর্ণনাকারীর কাছে নির্দ্বিধায় লিখতে থাকবে: আপনি ডিস্কে আরও (বেশি) স্থান অবিরত রাখবেন, তবে আপনি যে বার্তাটি লিখেছেন তা কোনওটি দেখতে সক্ষম হবেন না, তাই আপনি সত্যিই সবচেয়ে খারাপ অবস্থায় আছেন উভয় বিশ্বের। যদি আপনি এর পরিবর্তে ফাইলটি শূন্য দৈর্ঘ্যে ছাঁটাই করেন তবে স্থানটি তাত্ক্ষণিকভাবে খালি করা হবে এবং যে কোনও নতুন বার্তা ফাইলের নতুন প্রান্তে যুক্ত করা হবে যেখানে আপনি সেগুলি দেখতে পাবেন।
পরিণামে, যখন ডিমন close
ফাইলটি বন্ধ করে দেয় বা স্থান দেয়, স্থানটি খালি করা হবে। নতুন কেউ মধ্য সময়ে ফাইলটি খুলতে পারে না ( লিনাক্সের/proc/x/fd/...
মতো সিস্টেম-নির্দিষ্ট প্রতিচ্ছবি ইন্টারফেসের বাইরে )। এটি গ্যারান্টিযুক্ত যে:
যদি ফাইলটির লিঙ্ক গণনা 0 হয়, যখন ফাইলের সাথে যুক্ত সমস্ত ফাইল বর্ণনাকারী বন্ধ হয়ে যায়, তখন ফাইল দ্বারা অধিগ্রহণ করা স্থানটি মুক্ত হয়ে যাবে এবং ফাইলটি আর অ্যাক্সেসযোগ্য হবে না।
সুতরাং আপনি স্থায়ীভাবে আপনার ডিস্কের স্থানটি হারাবেন না, তবে আপনি ফাইলটি মুছে ফেলাতে কোনও কিছুই অর্জন করতে পারবেন না এবং আপনি নতুন বার্তাগুলির অ্যাক্সেস হারাবেন।
/proc/x/fd/y
? প্রক্রিয়া ফাইল বিবরণকারী লিখতে ব্যর্থ হতে পারে, বা এটি একটি অবৈধ অপারেশন?