Восстановленные удаленные файлы на 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" 
  • shell-скрипты все еще работают без #! (строка sha-bang)
  • Как заставить скрипт принимать несколько аргументов?
  • Где продолжение строки bash после && и || документально?
  • удалите номер версии с низкой версией
  • Вопрос о структуре и циклах
  • Есть ли опция / команда для дифференциации файлов на основе состояния копии файла в каталоге?
  • команда sed - Заменить строку в файле
  • Сценарий с ошибкой «команда не найдена: ^ M»
  • Получить переменную из строки
  • переменная интерполяция в сценарии оболочки
  • Выравнивание выходного файла скрипта Bash
  • Linux и Unix - лучшая ОС в мире.