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

Я случайно удалил файл, который был получен моей оболочкой 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 при вводе некоторого текста в форме.

  • Как записать cd в названный каталог, если команда не найдена?
  • При использовании zsh вызывает расширение истории
  • Как разбить вывод команды и назначить результат массиву, используя только одно выражение?
  • Есть ли postexec / predisplay hook для ZSH?
  • В zsh, в чем смысл идиомы '$ == *'
  • эквивалент часов в zsh
  • Почему оператор if if интерпретирует логическое обратное
  • Почему модификаторы zsh precommand перестают принимать аргументы при цитировании?
  • Об относительных достоинствах `` $ @ "` и `" $ @ "`
  • Синтаксис расширения Zsh
  • Получить полный путь к текущему загрузочному файлу zsh (например, zshrc или zshenv)
  • Interesting Posts

    Конфигурация браузера по умолчанию Thunderbird

    Через системы, Как процесс взаимодействует с другим процессом?

    Скройте вывод bash во время запуска автоматического сценария.

    Как настроить конфигурационные файлы pam.d в CentOS

    Как вернуть фоновую задачу на передний план?

    Выражение фильтра tcpdump прерывается через adb

    Низкое разрешение, вызванное Нет допустимых режимов для «DFP-0» – Mint-17 NVidia

    Использование strace для файла C

    клавиши со стрелками не работают с сеансом telnet терминала (termnetd)

    Как синхронизировать datetime в centos, минимально установленном в виртуальном боксе?

    Как использовать blktrace для мониторинга шаблона доступа к eMMC Flash?

    Как я могу найти правильное имя для моего микрофона и звука, используя aplay или pacmd или что-то еще, для применения в asound.conf?

    Преобразование всех первых символов в идентификатор электронной почты в верхний регистр в BASH

    Что означает% h и другие символы, как это?

    В чем разница между localhost и localnets в именованной конфигурации

    Linux и Unix - лучшая ОС в мире.