Рейтинг:-1

Рабочий каталог самопроизвольно удален

флаг jp

На Убунту 20.04.3 ЛТС, я работал в nvim в bash. У меня было открыто несколько вкладок терминала. Был .git каталог в рабочем каталоге. В какой-то момент, закрыв одну вкладку терминала, я заметил, что директория, в которой я работал, больше не существует.

Я проверил, не переместил ли я каталог случайно, запустив sudo find / -name "some-file.txt" из домашнего каталога, где какой-то файл.txt это имя файла, который, я уверен, находился в отсутствующем каталоге.

Я дважды проверил историю bash, и после последнего git совершить и git rebase -i HEAD --root Я сделал, там только команды указывающие на мой поиск потерянного каталога. Я помню, в интерактивной перебазировке я переименовал первоначальный коммит. Если я сделал что-то не так (как в: уронить все коммиты, например), это все равно не объясняет удаление всего каталога.

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

Что может быть причиной этого? (Всякий раз, когда я пытаюсь гм -р каталог с .git репозиторий с коммитами, меня просят подтвердить удаление коммитов rm: удалить обычный файл, защищенный от записи.... Этого не происходит, когда я запускаю эту команду как судо, но я совершенно уверен, что не ввел свой пароль. Помимо истории bash, это заставляет меня думать, что я случайно не удалил весь каталог.)

Что я могу сделать, чтобы восстановить свои данные? Я не нажимал, и мне удалось сохранить файлы в открытых буферах vim, чтобы уже самому ответить на самые очевидные части.

muru avatar
флаг us
Возможно, вы случайно переместили каталог в другое место.
guiverc avatar
флаг cn
Не забывайте, что если вы запускаете команду с `sudo`, вам не будет предложено ввести пароль, если вы все еще находитесь в пределах времени предыдущей *команды с повышенными правами* на том терминале, где использовалась команда `sudo`. .. Вы не предоставили никаких сведений об ОС или выпуске, которые позволили бы дать более точный ответ (например, ваше упоминание о том, что вы не указали пароль, возможно, не требовалось для `sudo`, хотя есть продукты Ubuntu, где пароль требуется немедленно, но ты не конкретизировал)
jonathan.scholbach avatar
флаг jp
@guiverc Спасибо за комментарий. Сейчас я добавил версию Ubunutu. Отсутствуют ли дополнительные детали, которые могут быть полезны?
muru avatar
флаг us
@jonathan.scholbach ``sudo grep "seome-file.txt" \``? Предполагая, что вы имели в виду `/`, это ищет строку `seome-file.txt` в каталоге `/`, что все равно будет ошибкой, если вы не скажете `grep` рекурсивно. И даже тогда он все равно будет проверять содержимое, а не имя файла. Это бессмысленно как подтверждение чего-либо.
jonathan.scholbach avatar
флаг jp
@muru Вы правы, извините, во-первых, у меня были опечатки, а во-вторых, я перепутал `grep` и `find`. Я также не нашел файл с помощью `find`.
muru avatar
флаг us
Ваша команда find также не делает того, что вы думаете.
Рейтинг:0
флаг it

НАЙТИ ПРИЧИНУ:

nvim также поставляется с несколькими командами (и предустановленными расширениями), которые могут это сделать. Если вы пытаетесь выяснить причину удаления, проверьте nvim логи тоже.

ВОССТАНОВЛЕНИЕ ДАННЫХ:

Вы упомянули .git каталог. В вашем каталоге есть удаленный git? Если это так, просто клонируйте его на локальный и проблема решена.

Если нет, проверьте каталог с именем ".trash-{$USER_ID}" если оригинал был на смонтированном внешнем диске, или .local/доля/Корзина в противном случае. Он может быть там (если только г.м. использовался для удаления. В этом случае, если вы не делаете резервную копию своей файловой системы, она, вероятно, исчезла.)

ЗАЩИТА ВАШЕЙ СИСТЕМЫ ОТ ЭТОЙ ПРОБЛЕМЫ:

Вот почему вы так часто увидите здесь пользователей, рекомендующих частое резервное копирование по расписанию. Я лично использую комбинацию Сдвиг во времени и rsync.

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

rsync поставляется с Ubuntu. Это просто базовый инструмент командной строки для копирования файлов и каталогов по сети (хотя он может делать это и локально).

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

Недостаток rsync в том, что нет "поставь и забудь" встроенный метод. Однако менеджеры пакетов Ubuntu предоставляют гораздо больше вариантов резервного копирования, каждый со своими особенностями.

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

jonathan.scholbach avatar
флаг jp
Что касается удаленного репо: как я уже сказал, я не нажимал. Что касается резервного копирования: я запускаю резервное копирование раз в неделю. Я потерял работу дня.
Nate T avatar
флаг it
Потеря работы за день по-прежнему отстой, но могло быть намного хуже. Что касается причины, в конечном счете, только у вас есть ресурсы, чтобы понять это. Существует тысяча различных способов удаления данных. Насколько нам известно, это могла быть мошенническая программа bg под управлением root или `SIGSEGV`. Тем не менее, я гарантирую, что ответ находится в файле журнала где-то в вашей системе. Кстати, ты еще не проверил свою корзину для мусора? Пока он не был `rm`ed (как в системном вызове, а не в утилите cli), вы сможете найти его там

Ответить или комментировать

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