Коли дані видаляються з вашого кошика, що з ним відбувається?


48

Виправте мене, якщо я тут помиляюся, але коли ви "видаляєте" щось зі свого комп'ютера, все, що робить ваш комп’ютер, - це записати частину бінарних файлів, що 0 заміняють 1. (Або щось для цього ефекту) Отже, коли ви надсилаєте щось у кошик, він записує частину файлу, а коли ви видаляєте з кошика, він пише більше?


11
Безпечно, звичайно видалені файли підлягають частковому або повному відновленню залежно від обсягу перезапису. Якщо вам потрібно стерти файлові дані , які не підлягають відновленню, вам знадобиться скористатися сторонніми інструментами, щоб "надійно видалити" файл та / або "надійно видалити" вільний простір на диску. Це передбачає запис нулів або випадкових даних один або багато разів протягом простору, і це забирає багато часу (тому звичайне видалення не робить цього).
ADTC

@JaDogg Що ти маєш на увазі?
Паракосміст

@JaDogg більшість 0/1 і що це? A / F? Не впевнений, трохи іржавий. Але все це стосувалося мереж. Більшість це все одно. Я тут новачок, тому не можу коментувати інших людей, що розміщують питання про це, оскільки я ще нікого не бачив, але в цьому не сумніваюся.
Ши А.

Ви помиляєтеся. Коли ви щось "видаляєте", Windows просто переміщує його до кошика, який, в основному, є лише спеціальною папкою. Навіть коли ви видаляєте щось із кошика, воно, як правило, не перезаписується відразу. (Але блоки можуть бути розподілені для інших файлів, і тоді дані можуть бути перезаписані.)
G-Man каже: "Відновити Моніку"

@ADTC, це просто нормальне написання, чи не так? То навіщо потрібні програми сторонніх розробників? Якщо я збережу файл як 000000000000або random_garbage_data_repeat_random_garbage_datперед видаленням, чи не матиме це такий же ефект?
Пейсьєр

Відповіді:


86

Жодна операція не записує файл.

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

Видалення файла з кошика (або видалення його безпосередньо за допомогою Shift+ Delete) видаляє запис імені файлу з його папки. Частина диска, яку раніше займав файл, досі не змінюється або перезаписується і все ще містить всі дані файлу, але ці дані більше не пов'язані з іменем файлу. Це місце на диску записується як «вільний», однак, так і майбутні записи на диск можна повторно використовувати цей простір, і якщо ви продовжувати використовувати диск простір майже напевно буде переписаний в кінці кінців .

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


33
Щоб розширити біт "переміщення файлу", кошик - це лише звичайна папка на вашому жорсткому диску, яку Windows особливим чином показує вам.
Марк

9
@ Марк не зовсім, я вважаю, що на кожному диску є папка "кошик для сміття" (це .$TRASHESне можу запам'ятати), і Windows поєднує їх усіх, коли ви відкриваєте кошик. Тож у вашому C: drive і E: drive є папка, оскільки Windows не хоче копіювати все, коли ви видаляєте його (у цьому вся суть!).
Рікінг

7
Використовується Windows Vista, 7 та 8 (і 8.1) $RECYCLE.BIN. @ Riking Ви думаєте про Nautilus для Linux; він використовує .Trashes.
Коул Джонсон

3
Хоча це залежить від файлової системи, імена файлів зазвичай не видаляються з папки при видаленні. наприклад, у FAT / FAT32 просто перший символ імені файлу в діренті замінюється байтом 0xE0, завдяки чому весь файл, включаючи весь, крім першого символу імені, повністю відновлюється, якщо не було запису, що повторно використовує ланцюг кластерів, який був раніше виділено видаленому файлу.
Енді Браун

6
@Yaitzme переміщення файлу, як правило, не переміщує вміст файлу. Якщо джерело та призначення знаходяться на одному розділі, переміщується лише ім’я файлу (тобто вказівник на файл додається до нового каталогу та видаляється зі старого каталогу). Дані можуть залишатися там же. Тільки при переміщенні файлу через розділи потрібно копіювати весь вміст.
амон

36

Файл складається з двох частин:

  1. Запис у каталозі, який записує ім'я файлу, а також містить перелік блоків на диску, які містять вміст даних файлу. Потім операційна система "знає", що ці блоки використовуються.
  2. Фактичні блоки, які містять вміст даних у файлі

Коли файл видалено:

  1. Список блоків у записі каталогів повертається до операційної системи, позначеної як вільна. Запис у каталозі видаляється, тому файл "зникає" з файлової системи.
  2. Фактичні блоки не торкаються, тому вміст даних у файлі залишається недоторканим, поки якийсь інший новий файл не замінить їх. Це є причиною того, що програмне забезпечення для відновлення файлів часто може відновлювати видалені файли (але тільки якщо воно використовується незабаром після видалення).

10

Вам потрібно уточнити, чи питаєте ви, що відбувається на фізичному диску чи на рівні програмного забезпечення.

З фізичного боку це залежить від приводу:

  • На магнітних накопичувачах перезапис бітів або їх запис - це та сама операція, тому файли зазвичай фізично не видаляються (операційна система просто змінює вміст розділу і відмічає простір як вільний).

  • На SSD-накопичувачі неможливо записувати наявні дані, тому файли зазвичай фізично видаляються (Див. Http://en.wikipedia.org/wiki/Trim_(computing) )

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


4
"Переміщення до кошика переміщує файл." Не зовсім. Сам файл не переміщується; він все ще займає ті ж LBA на диску, що і раніше. Навіть запис файлу однаковий. Єдине, що "перемістилося" - це запис каталогу, від початкового каталогу файлу до каталогу "Кошика".
Джеймі Ханрахан

Ця річ про SSD - це те, чого я не очікував. Я думав, що всі операції запису на SSD викликають знос. Чи не обробка викликає знос? Ви можете сказати, що ОС не активно записує нулі в простір, а просто надсилає команду обрізки на SSD, що, в свою чергу, очищає дані з секторів, що містять файл.
ADTC

що я хотів сказати, але не знадобив часу, щоб пояснити, що, задаючи такий тип запитань, вам дійсно потрібно звузити його або до програмного, або до апаратного боку речей. "файли", "папки", "розділи", "зміст" тощо - це поняття програмного забезпечення. З боку обладнання це більше схоже на "прочитати 80 байт за адресою 0x2384923", написати 24 байти за адресою 0x123123 "або" обрізати 292 байти за адресою 0x82478923 "
Eloims

6
AFAIK, команда Trim фізично не видаляє файл (як згадувалося в ADTC, це було б дорогою операцією. Це просто дає прошивці диска знати, що більше не потрібно зберігати дані. Отже, це концептуально досить схоже на те, що відбувається у файловій системі, просто на рівні прошивки
oefe

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