1

Я работаю над сценарием корзины, который я могу вызвать, чтобы удалить файл и восстановить файл.

В настоящее время удаление работает нормально и может быть вызвано с использованием подстановочного знака, имени файла (для текущего каталога) или полного пути к файлу. Затем он берет этот файл и сохраняет его в /root /Dustbin /...

# del example.txt

При этом он также сохраняет исходный путь к файлу в файле log.txt в мусорной корзине.

Теперь мой вопрос заключается в следующем: как мне восстановить файл в исходное положение (которое хранится в файле log.txt)?

Мой код для восстановления в настоящее время:

#!/bin/sh

for path in "$@"; do
find /root/Dustbin -name "$path" -exec mv {} ./ \;
done

#End of script

На данный момент это восстанавливает файл, указанный в Dustbin, в мое текущее местоположение, используя

# restore example.txt

Спасибо

1 ответ1

0

Без более подробной информации о файле журнала трудно дать точный ответ, но вот несколько советов.

Используйте grep чтобы выбрать правильную строку из журнала. Удостоверьтесь, что команда достаточно конкретна, чтобы вы могли получить ровно один результат, привязав поиск, используя такие вещи, как начало строки (^) или сопоставив любые разделители, которые вы используете в своем журнале.

Используйте awk или sed для чтения пути из строки, возвращенной командой grep . Снова убедитесь, что вы получили полный путь и только те элементы пути, которые вам нужны. (Остерегайтесь пробелов и т.д.)

При повторном указании цели для восстановления обязательно следите за пробелами и другими символами, которые могут испортить команду mv , правильно указав путь. Чтобы избежать проблем с тире в имени файла, вы можете добавить -- после любых опций, которые вы хотите передать команде mv . -- указывает конец параметров для большинства команд.

Некоторые дополнительные мысли:

  • Если вы поместите все удаленные файлы в один каталог, поиск не требуется, вы можете просто mv из /root/Dustbin в исходное местоположение.
  • Однако, если вы поместите все файлы без переименования в один и тот же каталог, вы можете перезаписать файлы в своей корзине
  • добавить достаточную обработку ошибок в сценариях удаления и восстановления
  • не полагайтесь на такой механизм для важных файлов! Если вам нужно быть уверенным, что вы можете восстановить определенный файл, вам нужно убедиться, что у вас есть подходящая резервная копия и что вы можете восстановить ее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .