Могу ли я восстановить удаленный файл? [дубликат]

На этот вопрос уже есть ответ здесь:

Я по ошибке удалил файл через при подключении ssh. Как я могу восстановить этот файл или, если в ubuntu есть что-то вроде корзины для мусора?

7
задан 5 November 2014 в 07:04

2 ответа

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

я сохранил этот ответ Patrick от Exchange Стопки Unix и Linux, но не ссылку на оригинал.

Восстановление удаленного файла, если файл все еще открыт в программе.

, Если файл все еще открыт, можно вернуть его путем движения в/proc/PID/fd, где PID является изодромной с предварением из программы, которая имеет файл, все еще открываются. Этот каталог содержит все открытые дескрипторы файлов программы, и можно получить доступ к ним точно так же, как нормальные файлы, таким образом, Вы могли скопировать файл от/proc. †“Patrick 18 декабря в 4:44 и †“camh 19 декабря в 7:12 - Unix и Linux stackexchange

3
ответ дан 23 November 2019 в 06:14

rm по сравнению с удалением из GUI

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

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

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

Мусор для CLI

Возможно использовать корзину из командной строки, но это не настраивается по умолчанию. Пакет trash-cli содержит инструменты командной строки для использования корзины настольной среды.

Существуют команды как trash-put, trash-list и т.д.;
Имена довольно длинны - Вы могли определить псевдонимы оболочки как

alias tp='trash-put'

или

alias del='trash-put'

и затем используйте del вместо rm удалить файлы или каталоги более безопасным способом.

Как это предположено в ответе, связанном ниже, возможно использовать имя псевдонима rm, замена фактического rm команда с trash-put, но существует несколько причин не сделать это; некоторые из них:

  • Реализация trash-put намного менее хорошо протестирован это rm от 'GNU coreutils' в Ubuntu, например.
  • Опции значения по умолчанию rm все не поддерживаются trash-put
  • Кто-то еще будет использовать оболочку с псевдонимом рано или поздно и будет видеть очень поврежденный rm команда, технически.
  • Специальный синтаксис необходим когда реальное rm требуется
  • Обычно это не хорошая идея смешать с очень опасным инструментом, по крайней мере, рискуя беспорядком.

Однако см., что ответ @enzotib на файлах/каталогах Банки, удаленных с комнатой, восстанавливается? о том, как настроить псевдоним.

13
ответ дан 23 November 2019 в 06:14

Другие вопросы по тегам:

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