Вопрос или проблема
Safecopy может спасти файл или раздел с неисправного жесткого диска. Но что, если вы хотите спасти целую директорию? Похоже, в safecopy нет способа сделать это.
Существует ли команда, которая будет запускать safecopy рекурсивно для каждого отдельного файла в директории и помещать его в соответствующее место на спасенном носителе?
У меня есть огромный, неисправный диск, но мне нужно спасти только одну директорию с него.
Я не знаю, создаёт ли Safecopy отсутствующие директории в целевом пути, поэтому создадим их сначала:
cd /media/newdrive/billrescue
find /media/brokendrive/Users/bill/Documents -type d -printf "%P\0" |
xargs -0 echo mkdir -p
Теперь мы вызываем safecopy
для каждого файла:
cd media/brokendrive/Users/bill/Documents
find . -type f -exec echo safecopy {} /media/newdrive/billrescue/{} \; | head
Удалите echo
и | head
, если вывод соответствует вашим потребностям.
Или:
find /media/brokendrive/Users/bill/Documents -type f -printf "%P\0" |
xargs -0 -I{} echo safecopy /media/brokendrive/Users/bill/Documents/{} /media/newdrive/billrescue/{}
Ответ или решение
Safecopy — это инструмент, предназначенный для восстановления файлов или разделов с поврежденных жестких дисков. Однако его изначальная функциональность не предполагает непосредственного восстановления целых каталогов. Это может создать сложности, если вам нужно восстановить лишь один конкретный каталог с большого, поврежденного диска. Решение данной задачи требует более глубокой проработки.
Теория
В рамках командной строки Unix/Linux с использованием утилиты find
возможно выполнение рекурсивных операций с каждым отдельным файлом внутри заданного каталога. Это может быть полезно для автоматизации процесса, когда необходимо обработать каждую единицу данных по отдельности. Комбинируя find
с xargs
и safecopy
, можно достичь желаемого результата: восстановления всех файлов внутри определённого каталога с сохранением структуры директорий.
safecopy
сам по себе не создаст директории на новом носителе, по крайней мере, это не описано в его стандартных функциональных возможностях. Следовательно, перед началом процесса копирования необходимо рекурсивно создать требуемую структуру директорий.
Пример
Представим, ваша задача состоит в восстановлении каталога /media/brokendrive/Users/bill/Documents
на поврежденном диске. Вам необходимо скопировать его файлы на новый диск по пути /media/newdrive/billrescue
. Для этого мы сначала создадим нужную структуру директорий, а затем с помощью safecopy
перезапишем каждое из файлов.
Для создания структуры директорий используем следующую команду:
cd /media/newdrive/billrescue
find /media/brokendrive/Users/bill/Documents -type d -printf "%P\0" | xargs -0 mkdir -p
Данная команда делает следующее:
- Переключается на целевой раздел, где будет производиться восстановление.
- Использует
find
для поиска всех директорий в указанном каталоге на исходном, поврежденном диске. - Для каждой найденной директории создается соответствующая структура на новом носителе с помощью команды
mkdir -p
.
После создания директории переходим к процессу восстановления файлов. Используем:
find /media/brokendrive/Users/bill/Documents -type f -printf "%P\0" | xargs -0 -I{} safecopy /media/brokendrive/Users/bill/Documents/{} /media/newdrive/billrescue/{}
Здесь мы:
- Опять используем
find
, чтобы собрать список всех файлов в исходной директории. xargs
обрабатывает каждый файл индивидуально, вызываяsafecopy
для копирования его на новый носитель.
Применение
Такой подход позволяет автоматизировать процесс восстановления данных в условиях, когда план восстановления всего диска неразумен, а необходимость сосредоточиться лишь на определенной информационной структуре критична. Следует отметить, что перед тем как удалить echo
из представленных команд, нужно убедиться в правильности отображенного результата. Это делается для того, чтобы избежать случайного перезаписывания нецелевых данных.
find
и xargs
— мощные инструменты командной строки, которые предоставляют большую свободу во взаимодействии с файлами и каталогами. Их комбинация с safecopy
делает процесс восстановления данных управляемым и эффективным при условии повреждения физических носителей.
Заключение
Для успешного выполнения задачи по восстановлению каталога с поврежденного носителя, необходимо четкое понимание инструментов командной строки и их грамотное использование. Safecopy совместно с find и xargs позволяет структурировать рабочий процесс, минимизировать риски потери данных и сосредоточиться на необходимом наборе информации. В современных условиях, когда надежность и гарантии сохранения данных становятся критически важными, умение эффективно использовать такие инструменты должно стать обязательным навыком для IT-специалиста.