Восстановленные удаленные файлы на Mac по командной строке

Я случайно удалил файл, запустив:

rm -rf ./Desktop/myScript.sh 

Я думаю, что можно восстановить файл, потому что команда rm временно удаляется. Как восстановить удаленный файл на Mac OSX?

2 Solutions collect form web for “Восстановленные удаленные файлы на Mac по командной строке”

MacOS – это ОС Unix, а rm означает «до свидания». Интерфейс GUI позволяет переместить файл в корзину (который вы можете восстановить), но это не то, что вы сделали. Если у вас есть резервная копия (например, у вас работает Time Machine), вы сохраняетесь.

осветление

Строго говоря (как указывает @ire_and_curses), rm просто удаляет запись каталога для файла, оставляя используемые блоки диска, нетронутыми. Если вы можете отказаться от файловой системы, в которой находился файл, существуют расширенные методы, с помощью которых вы можете попытаться повторно открыть содержимое этих блоков. Существуют также некоторые инструменты восстановления, которые можно приобрести для восстановления потерь. Основная проблема заключается в том, что ничто не повторяет использование любого из блоков диска, представленных вашим файлом.

MacOS также имеет команду secure remove ( srm ), которая srm файл до того, как он будет unlink что сделает его невосстановимым. Я использую термин unlink так как это базовый системный вызов, связанный с командой rm оболочки. Это создает основу для следующей части этого обсуждения ниже.

Примечание

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

unlink файла уменьшает количество ссылок на индекс inode файла. Если это значение достигает нуля, файл будет удален из каталога файловой системы, а его блоки диска освобождены для повторного использования. Это происходит только тогда, когда никакие процессы не открывают файл. Администраторам часто бывает сложно понять, что файловая система использует очень большие объемы пространства, которые не могут быть учтены простым суммированием блоков диска (с чем-то вроде du ). Чаще всего причина в том, что открытый файл был удален, так что он больше не представлен в его каталоге. Причина в том, что блоки диска остаются в употреблении до тех пор, пока последний процесс с использованием файла не завершится.

Открытие файла и немедленное unlink – это обычная практика создания защищенных временных файлов. Такие инструменты, как lsof могут выставлять эти невидимые файлы, если вы ищете файлы со списком ссылок (NLINK), равным нулю.

В Unix и Linux (из которых MacOS является фирменным Unix), rm следует философии Unix «do-it» без фанфары, если это возможно. То есть, если у вас есть разрешения на удаление файла (т. Е. Ваш каталог позволяет писать), тогда rm делает именно то, что вы просите. Возможно, вам захочется создать псевдоним оболочки rm='rm -i' который запрашивает подтверждение перед выполнением операции. Использование ключа -f с rm переопределяет это, если необходимо. Сглаженный rm наиболее полезен, когда вы делаете glob удаляется как rm *.log . То есть у вас есть возможность пропустить файл в списке.

В зависимости от вашего контента, но вы можете использовать различные сторонние программы для этого, например:

  • Восстановление данных Wondershare
  • Data Rescue 3 (доступно в App Store)
  • Leawo Data Recovery Pro (доступно в App Store)
  • Гуру восстановления данных (доступно в App Store)

и многое другое.

Вы можете найти больше приложений, введя «восстановление данных» в App Store.


Более продвинутый способ – загрузить ОС OSX в режиме восстановления (или, если возможно, umount ваш раздел) и искать его вручную (если вы помните какой-то конкретный текст из вашего скрипта).

Пример:

 diskutil list sudo cat /dev/disk0s2 | strings | grep -C20 "my_stuff" 
  • Элегантное решение для эха в stdout или файл в bash
  • Невозможно разобрать вывод функции
  • Правильный способ добавления учетной записи пользователя через скрипт bash
  • Как эскалировать сигнал?
  • Начальная последовательность движения - модификация скрипта оболочки
  • Проблема с скриптом чтения строки в Cygwin
  • Выполнение команды на разных оболочках
  • Странное форматирование даты в сценарии bash
  • Как загрузить файл путем подделки IP-адреса запроса?
  • Обработка ввода для команды чтения как самой команды
  • sh-скрипт, содержащий элемент perl, не производит такой же вывод через crontab как ручное выполнение
  • Linux и Unix - лучшая ОС в мире.