Чому видалений файл насправді не видаляється з жорсткого диска?


8

З статті про відновлення файлів я прочитав, що при видаленні файлу на вашому комп'ютері видаляється лише вказівник на файл, а простір, який займає файл, позначається як вільний для використання. Чи є єдиною причиною цього відновлення "видалених" файлів, чи є інші причини, чому займаний простір фактично не видалено (біти встановлені в нуль)?


Подумайте про видалення блоків, використовуваних файлом на повільних носіях. FAT спочатку був розроблений для дискети, і навіть дискети стали швидшими, коли технологія прогресувала. Можливість відновлення видалених файлів значною мірою є побічним ефектом рішення не перезаписувати дані, а не навпаки. Більш сучасні файлові системи (особливо ті, що мають технологію копіювання на запис: btrfs, zfs, ...) мають інші міркування (до моменту видалення файлу ви можете навіть не мати місця, де кожна копія зберігалася історично , і ви, звичайно, не хочете подвоювати кожен запис, якщо цього не потрібно).
CVn

Відповіді:


20

Причиною віддавати перевагу від’єднанню файлів, а не нулюванню файлу є продуктивність. Набагато простіше просто нуль змінної в структурі даних файлової системи, а не починати перезапис цілого файлу. У сучасних файлових системах від’єднання файлів займає постійну кількість часу незалежно від розміру файлу, тоді як час, витрачений на перезапис файлу, пропорційний розміру файлу.


"Від’єднання файлу займає постійну кількість часу незалежно від розміру файлу" - чи це правда, залежить від структури даних, що використовуються для управління вільним простором. Багато старих файлових систем використовують блокову растрову карту, де звільнення місця займає час, пропорційний розміру файлу.
Майкл Боргвардт

@MichaelBorgwardt Спасибі, змінив відповідь для наочності.

Не міг би сказати це краще.
восьминоги граббус

8

Тому що це займе набагато більше часу, і це не потрібно, якщо ви не хочете зробити неможливим відновлення видалених файлів, що трапляється рідко.


2
+1 за "набагато більше часу". Файлова система не була розроблена як нульове виключення даних як вимоги, але вона була спроектована якнайшвидше.
Скотт Вітлок
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.