[AI CC-CC2021] Сохранила файл под названием существующего, соответственно он перезаписался, есть возможность вернуть все обратно?

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844
Посрамим, пожалуй, диванных теоретиков.
Итак, создаю раздел fat32, заполняю его нулями.
Снимаю дамп. Раздел пуст, кроме заголовка и карты.
Посмотреть вложение 123035
Создаю на разделе файл 1.txt с небольшим содержимым.
Снимаю дамп, вижу файл.
Посмотреть вложение 123036
Открываю файл в редакторе, правлю текст, сохраняю под тем же именем.
Снимаю дамп, смотрю. Файл сохранился на других кластерах.
Посмотреть вложение 123038
А где же первый файл? А он на своём месте лежит целёхонький!
Посмотреть вложение 123039
ЧТД.
Дампы раздела со всех трёх итераций тут: Файлы не перезаписывается при сохранении.
И что в этом хорошего?
 

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 860
Реакции
3 450
…при заявленном FAT32?
Форматировал не руками, а кнопочкой, как секретутка. Софтинка оказалась умней меня и смекнула, что разделу размером 1 мб. 32 бит для хранения номера кластера ни к чему и создала 12.
Потому что непонятно.
Потому что хамство.
И ясности ты сейчас не вносишь. Из простой задачи, ты сделал чрезмерно усложнённую, добавив неизвестных.
Покажите Ваши доказательства, ясные и неусложнённые, без добавления неизвестных. Прочту внимательно, постараюсь понять, дерзить Вам не буду.
 

langry

12 лет на форуме
Сообщения
435
Реакции
109
@~RA~, хамство!?. Теперь я не понял.

Вопросы к твоему методу я задал выше, ответов не получил. Усмотреть в этом оскорбление — твоё право. Ничего подобного не подразумевалось. Если ответов нет, мои вопросы кончились.
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
я про дропбокс не упоминал еще?
 

kstati

иɯɐɯɔʞ
10 лет на форуме
Сообщения
1 138
Реакции
512
При том, это стандартная фунция записи в файл (поток) ISO C, POSIX.1, которой нет дела в какой кластер запишутся данные.
Работает она со стандартными fopen/fseek.
Если софт не создает копии файла, то данные пишутся туда же, где и были.

Твой пример слишком зависим от оси и неизвестного редактора
 
  • Спасибо
Реакции: langry

langry

12 лет на форуме
Сообщения
435
Реакции
109
…Даже если попытаться перезаписать файл другими данными, контроллер SSD скорее всего будет искать свободные для записи ячейки и перезаписываемая информация будет лежать "параллельно".
Для чистого удаления файлов в SSD-дисках на уровне протоколов реализованы команды TRIM и Secure erase.
Но и они не всегда могут помочь (да и, к примеру, Secure erase не на всех дисках есть). Т.к. это команды аппаратные, то встречаются особенности, которые зависят от контроллера, который управляет SSD…
Нашёл на просторах на нашу тему. Вообще между магнитным носителем и прочими есть разница в нашем случае.
Собственно, на это и намекал — влияние на адресацию кучи факторов, от контроллера, до ОСи и/или виртуальных драйверов.

Для чистоты эксперимента нужен махонький раздел именно винчестера. Спасибо, ~RA~, интересную тему подкинул
 
  • Спасибо
Реакции: ~RA~

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 860
Реакции
3 450
Упростим задачу, исключив редактор вовсе.
Возьмём чистый раздел флешки (например) и начнём в него проводником бросать один и тот же файл и всякий раз соглашаться с предложением "перезаписать". Сколько его копий будет на флешке после 10 таких бросаний? (места достаточно и даже с излишком)
 

kstati

иɯɐɯɔʞ
10 лет на форуме
Сообщения
1 138
Реакции
512
Драйвер фс. Если выгоднее кинуть данные на старое место - будет на старом, выгоднее на новое - на новом. Цели хранить старье нет. Шанс сохранения старых данных - только шанс.
Упростим задачу, исключив редактор вовсе.
Возьмём чистый раздел флешки (например) и начнём в него проводником бросать один и тот же файл и всякий раз соглашаться с предложением "перезаписать". Сколько его копий будет на флешке после 10 таких бросаний? (места достаточно и даже с излишком)
На нормальной с trim? одна.
 
Последнее редактирование:

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 860
Реакции
3 450

kstati

иɯɐɯɔʞ
10 лет на форуме
Сообщения
1 138
Реакции
512
Правильно

и

устройства.
Так вот, в большинстве случаев, пишется на новое место, если не во всех. Сличать и искать данные — излишне, да и чрезмерно дорого.
Поэтому запись ведется кластерами. С позиции, на которую указывает fseek. Слишком дорого гадать - перепишется весь файл или его кусок.
 
  • Спасибо
Реакции: langry

langry

12 лет на форуме
Сообщения
435
Реакции
109
Поддержу. Файл открыт для записи — нет резона искать свободные кластеры, кроме особых политик (восстановления например).

При прочих равных, приоритет будет у скорости записи, а не безопасности, я думаю.
 

ch_alex

Погулять вышел.
15 лет на форуме
Сообщения
8 420
Реакции
2 709
Хорошо, что это не под иксовыми осями файлы удалять. Там если удалил - то уже удалил...
 

kstati

иɯɐɯɔʞ
10 лет на форуме
Сообщения
1 138
Реакции
512
Хорошо, что это не под иксовыми осями файлы удалять. Там если удалил - то уже удалил...
не-а. если не ssd c trim, то шанс восстановить есть всегда. APFS, EXTx, JSF и прочие, включая FAT, NTFS "удаляют" файл из самой таблицы ФС, а данные без необходимости не трогают. Причина всё та же - скорость. А инструменты для "secure delete" есть, наверное, для всех современных осей и файловых систем.
Всё время, что он открыт в редакторе? Ну уж нет.
С чего это нет? Монопольный доступ на запись ни кто не отменял.
А другим на чтение - пожалуйста