Есть ли более быстрый способ отменить команду rm -r, которую я выполнил на внешнем жестком диске, отформатированном в exfat?
ExFat удаляет файлы, помечая каждый файл и запись каталога символом (0xe5 в качестве первого байта), а также удаляя указатель на запись файла, чтобы блоки были освобождены. Второй файловой таблицы нет, поэтому, как только она будет сделана, ее невозможно будет исправить. AFAIK нет другого способа восстановить файл с ExFat на Linux.
Будет ли testdisk восстанавливать иерархию подпапок или сбрасывать все в одну папку?
Testdisk, который используется для восстановления разделов и файловой системы, позволяет находить файлы, перечисленные в файловой системе, как удаленные, причем предостережение о том, что эти файлы не были перезаписаны. В этом случае вы можете "восстановить" файлы, которые копируют файл, начиная с указанных узлов, с сохранением имени файла и другой информации.
Иногда это включает иерархию папок . Я просто использовал его для восстановления 1440 фотографий с поврежденной SD-карты Canon Camera, отформатированной как ExFat. Я мог видеть файлы на камере, но не когда вставлял SD-карту в мой Mac. Testdisk мог видеть поврежденную / удаленную папку, и я мог восстановить файлы как минимум с 2 уровнями структуры папок. Это должно быть то же самое для вас, используя rm. Если бы был промежуточный этап помещения всех этих файлов в мусорную корзину или корзину для повторного использования, тогда он мог бы не иметь существующей структуры папок.
Другим инструментом, который поставляется с TestDisk, является PhotoRec, который представляет собой анализатор дисков низкого уровня, который ищет файловые структуры, игнорируя файловую систему . Это когда вы удаляете раздел или файловая система полностью закрыта. Поскольку фактические данные не имеют имен, это делается файловой системой или ОС, все файлы будут безымянными и без структуры папок.
Скорость TestDisk, по сути, равна скорости копирования любого файла, в зависимости от скорости вашего диска, компьютера или ОС.