यूनिक्स-शैली के फाइल सिस्टम (लिनक्स पर सहित) में, फाइलें वास्तव में "किसी विशेष स्थान पर" नहीं हैं। इसके बजाय, सिस्टम हार्डलिंक का उपयोग डेटा के एक बड़े ब्लूब को कितनी मात्रा में करने के लिए करता है। इसलिए जब आप एक फ़ाइल बनाते हैं, तो आप इसकी पहली हार्डलिंक भी बनाते हैं: वह जो वास्तव में उस जगह पर रहता है जहां आपने फ़ाइल को "सेव" किया है। यदि आप अधिक हार्डलिंक बनाते हैं, तो जहां तक सिस्टम को पता है, फाइल वास्तव में एक साथ कई स्थानों पर मौजूद है।
जब आप किसी फाइल को "डिलीट" करते हैं, तो आमतौर पर आप वास्तव में केवल उस हार्डलिंक को हटा रहे होते हैं जो आपके द्वारा निर्दिष्ट स्थान पर मौजूद है। यही कारण है कि फ़ाइलों को हटाने के लिए सिस्टम कॉल कहा जाता है unlink()
। सिस्टम वास्तव में फ़ाइल को तब तक नहीं हटाएगा, जब तक कि उसमें कोई हार्डलिंक न बचे। लेकिन एक बार जब अंतिम हार्डलिंक नष्ट हो जाता है, तो यह डेटा है।
तो, आप जाने वाली फ़ाइलें कहाँ जाती हैं? यदि अभी भी हार्डलिंक हैं, तो वे फ़ाइलें हैं जहाँ भी हार्डलिंक आपने नहीं हटाई हैं। यदि कोई हार्डलिंक नहीं बची हैं, तो फाइलें चली गई हैं।