При соответствии подстроке целой строки можно или использовать sed's s
команда с regex для вытирания остальной части строки:
sed -i 's/^.*foo.*$/another string/' myfile.txt
или используйте c
управляйте для замены подобранной строки сразу:
sed -i '/foo/ { c \
another string
}' myfile.txt
Если Вы не хотите вводить многострочные команды при подсказке, можно поместить ее в сценарий вместо этого:
$ cat foo.sed
/foo/ { c \
another string
}
$ sed -i -f foo.sed myfile.txt
Если диск поврежден, могло бы быть более умно скопировать целый диск (или каждый раздел самостоятельно) в файлы. Когда диски начинают перестать работать, их обычно полностью не стало вскоре после. Затем Вы можете обратная петля смонтировать копии и взбеситься с Вашими предпочтительными судебными инструментами, чтобы попытаться спасти независимо от того, что Вы можете.
На UNIX, соответствующем FHS, конфигурация в масштабе всей системы обычно хранится в /etc
(som epieces может находиться в /usr/local/etc
или /opt/app/etc
) и пользовательская конфигурация хранится в корневых каталогах, почти всегда в файлах и каталогах, начинающихся с точки (.vim/
, .libreoffice
...). Нет никакой единственной базы данных настроек, если синглом Вы понимаете единственный файл. Некоторые большие части программного обеспечения могут сохранить все или большую часть их конфигурации в единственном файле, но целую систему нет. Следовательно необходимо скопировать вышеупомянутые файлы, для восстановления настроек, который является также, почему это обычно - хорошая идея время от времени копировать их вместе с "регулярными" данными (или даже сохранять их под системой управления версиями).
Тем не менее, после того как Вы сохраняете самый важный материал, я настоятельно рекомендовал бы использовать GNU ddrescue, чтобы получить максимально хорошую копию файловой системы (систем) и работать над теми копиями. С тех пор ddrescue
может работать на уровнях ниже файловой системы, она часто может восстановить больше данных (и также более быстро), чем просто копирование.
Нет никакого “реестра”, содержащего список имен файлов в системе (это не общая вещь). Список имен файлов в каждом каталоге хранится в том каталоге. Можно генерировать список всех имен файлов в системе с find
команда.
find / -xdev | sort >/tmp/file-list
Это создает отсортированный список имен файлов в /tmp/file-list
. -xdev
опция говорит find
не убывать в другие смонтированные файловые системы, такие как операционная система специальные файловые системы или съемные диски.
Вероятно, было бы более полезно знать, какие файлы идентичны, также. Я рекомендую копировать Ваши файлы с rsync
и сохранение вывода ошибок от rsync
в файле, затем анализируя тот файл для наблюдения, что передало его и что не сделало.
Я использовал бы rsync. Это разумно сравнит файлы во время процесса копии и даст Вам список тех, которые не могли быть скопированы впоследствии.
rsync-av/path/to/source/path/to/target