Как восстановить перезаписанный файл с подключенного зашифрованного диска VeraCrypt?

Не используйте echo, чтобы увидеть, какая команда выполняется. Он печатает команду после синтаксического анализа, то есть после того, как кавычки и escape-последовательности были применены и удалены); поэтому, если вывод echoвключает кавычки и/или escape-последовательности, как вы ожидаете увидеть в необработанной командной строке (, то есть до синтаксического анализа ), это указывает на то, что что-то ужасно неправильно. Сравните вывод этих двух команд echo:

$ month=Jan
$ var="Inputs/${month}\\ 2019\\ Debit.CSV"
$ echo $var
Inputs/Jan\ 2019\ Debit.CSV
$ echo Inputs/Jan\ 2019\ Debit.CSV
Inputs/Jan 2019 Debit.CSV

В первом случае escape-последовательности печатаются, указывая на то, что они не были проанализированы, применены и удалены. Во втором они исчезли, что указывает на то, что они были проанализированы, применены и удалены.

Итак, как это исправить? Два правила :1 )не помещают кавычки или escape-последовательности в переменные (, за исключением странных случаев, когда строка будет проходить дополнительный уровень синтаксического анализа ), а 2 )вместо этого помещают double -заключает в кавычки все ссылки на переменные (, включая снова ${args[@]})(, есть некоторые странные исключения ). Кроме того, вы можете добавить в массив с помощью array+=("new" "elements").

Вот исправленный скрипт:

#!/usr/bin/env bash
clear
months=(Jan Feb)
args=()
for month in "${months[@]}"; do
  args+=(-p "Inputs/${month} 2019 Debit.CSV" "Inputs/${month} 2019 Credit.CSV")
done
python ExpenseManager.py "${args[@]}"
exit 0
0
19.11.2020, 14:43
1 ответ

Диск зашифрован, поэтому нет абсолютно никакого смысла искать на диске текстовую строку. В лучшем случае вам нужно выполнить поиск в смонтированной файловой системе, так как это расшифрованный уровень, но любая запись в него может перезаписать ваши удаленные данные.

Посмотрите на вывод этой команды, чтобы определить устройство файловой системы для поиска (, например/dev/mapper/myhome):

df -h /path/to/oldfile | awk 'NR>1 {print $1}'

Затем вы можете попытаться восстановить то, что осталось от данных файла, следуя инструкциям в Восстановление случайно удаленных файлов

1
18.03.2021, 22:48

Теги

Похожие вопросы