เหตุใดไฟล์จึงไม่ถูกลบออกจากฮาร์ดไดรฟ์จริงๆ?


8

จากบทความเกี่ยวกับการกู้คืนไฟล์ฉันอ่านว่าเมื่อไฟล์ถูกลบในคอมพิวเตอร์ของคุณมีเพียงตัวชี้ไปยังไฟล์ที่ถูกลบและพื้นที่ที่ครอบครองโดยไฟล์ถูกทำเครื่องหมายว่าใช้งานได้ฟรี มีเหตุผลเพียงอย่างเดียวในการกู้คืนไฟล์ "ลบ" หรือมีสาเหตุอื่นที่ทำให้พื้นที่ว่างไม่ถูกลบจริง ๆ (บิตที่ตั้งค่าเป็นศูนย์)?


พิจารณาการลบบล็อกที่ใช้โดยไฟล์บนสื่อช้า FAT ได้รับการออกแบบมาสำหรับฟล็อปปี้ดิสก์และแม้แต่ฟลอปปีก็จะเร็วขึ้นเมื่อเทคโนโลยีก้าวหน้าขึ้น ความสามารถในการกู้คืนไฟล์ที่ถูกลบนั้นส่วนใหญ่เป็นผลข้างเคียงของการตัดสินใจที่จะไม่เขียนทับข้อมูลไม่ใช่วิธีอื่น ๆ ระบบไฟล์ที่ทันสมัยกว่า (โดยเฉพาะระบบที่มีเทคโนโลยี copy-on-write: btrfs, zfs, ... ) มีข้อควรพิจารณาอื่น ๆ (ตามเวลาที่คุณลบไฟล์คุณอาจไม่ได้บันทึกว่าแต่ละไฟล์ถูกเก็บไว้ที่ใดในอดีต และแน่นอนคุณไม่ต้องการทวีคูณทุกครั้งหากคุณไม่จำเป็นต้องเขียน)
CVn

คำตอบ:


20

เหตุผลที่ต้องการยกเลิกการเชื่อมโยงแทนที่จะเป็นศูนย์ไฟล์คือประสิทธิภาพ มันง่ายกว่ามากที่จะเพียงแค่ปรับตัวแปรให้เป็นศูนย์ในโครงสร้างข้อมูลระบบแฟ้มแทนที่จะเริ่มเขียนทับไฟล์ทั้งหมด ในระบบไฟล์ที่ทันสมัยการยกเลิกการเชื่อมโยงไฟล์จะใช้ระยะเวลาคงที่โดยไม่คำนึงถึงขนาดของไฟล์ในขณะที่เวลาที่ใช้ในการเขียนทับไฟล์เป็นสัดส่วนกับขนาดไฟล์


"การยกเลิกการเชื่อมโยงไฟล์ใช้ระยะเวลาคงที่โดยไม่คำนึงถึงขนาดของไฟล์" - ไม่ว่าจะเป็นจริงหรือไม่นั้นขึ้นอยู่กับโครงสร้างข้อมูลที่ใช้ในการจัดการพื้นที่ว่าง ระบบไฟล์ที่เก่ากว่าจำนวนมากใช้บล็อกบิตแมปโดยที่การเพิ่มพื้นที่ว่างนั้นต้องใช้เวลาตามสัดส่วนกับขนาดไฟล์
Michael Borgwardt

@MichaelBorgwardt ขอบคุณแก้ไขคำตอบเพื่อความชัดเจน

ไม่สามารถพูดได้ดีกว่านี้
octopusgrabbus

8

เพราะมันจะใช้เวลามากขึ้นและไม่จำเป็นเว้นแต่คุณจะต้องการกู้คืนไฟล์ที่ถูกลบซึ่งเป็นไปไม่ได้


2
+1 สำหรับ "เวลามากขึ้น" ระบบไฟล์ไม่ได้ออกแบบมาโดยไม่มีข้อมูลเป็นศูนย์ แต่มันก็ออกแบบมาให้เร็วที่สุดเท่าที่จะเป็นไปได้
Scott Whitlock
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.