Возможно ли прочитать содержимое файла, который был получен с помощью интерактивной оболочки?

Я случайно удалил файл, который был получен моей оболочкой zsh : ~/.shrc .

Я смог восстановить резервную копию, которая составляет 3 месяца. Но он может пропустить некоторую конфигурацию, которую я включил в файл в течение последних нескольких недель.

Оболочка, из которой я удалил файл, по-прежнему открыт. Итак, я сбрасывал псевдонимы, переменные среды и функции с помощью этих команд:

 alias >~/backup_alias env >~/backup_env function >~/backup_function 

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

Поскольку файл был получен при запуске оболочки, и поскольку оболочка все еще открыта, есть ли команда, которую я мог бы выполнить из последнего, чтобы выгрузить содержимое файла или, по крайней мере, некоторые его части, включая комментарии ?

Я использую zsh версии 5.3.1 .

2 Solutions collect form web for “Возможно ли прочитать содержимое файла, который был получен с помощью интерактивной оболочки?”

В общем случае, когда оболочка анализирует исходный код оболочки для выполнения, маловероятно, что текст анализируемого файла будет когда-либо сохранен в памяти в целом.

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

Лучше всего, я считаю, делать то, что вы делаете; начать с недавней резервной копии файла и сбрасывать псевдонимы, функции и среду из текущей активной оболочки. Затем восстановите файл из этих фрагментов.

Оболочка будет читать и отбрасывать данные, прочитанные оттуда. Но в зависимости от того, как была распределена и освобождена память, все еще существует вероятность того, что данные или части данных все еще находятся в памяти процесса.

Попробуйте запустить gcore (поставляется с gdb ) в процессе pid оболочки и посмотреть, можно ли там найти содержимое файла (например, используя grep -az 'a text you know to be in that file' core.pid (предполагая GNU grep ).

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

Это трюк, который я иногда использую, когда я нажимаю ^W по ошибке в firefox при вводе некоторого текста в форме.

  • Есть ли встроенный (или, по крайней мере, простой) способ проверить наличие функции, доступной через $ FPATH?
  • Что делает команда магического пространства zsh?
  • Навигация по стеку каталогов в zsh из командной строки
  • изменение разделов слова zsh
  • Функции digest НЕ обрабатываются так же, как каталог файлов функций!
  • Сделать zsh alt-f вести себя как emacs alt-f
  • Что означает символ новой строки в PS1 zsh?
  • Отдельный путь для файлов .zcompdump
  • Синтаксис расширения Zsh
  • Почему мой список не преобразуется в массив в сценарии запуска .zshrc?
  • Как просмотреть текущие настройки для всех параметров?
  • Linux и Unix - лучшая ОС в мире.