Я случайно запустил команду mkfs.ntfs не на том устройстве и остановил ее

Это делает то, что вы хотите:

#!/bin/bash

while read line1; do
  f21=$(echo $line1 | cut -d" " -f1)
  f22=$(echo $line1 | cut -d" " -f2)
  #echo "outside: $f21 -- $f22"

  while read line2; do
    f11=$(echo $line2 | cut -d" " -f1)
    f12=$(echo $line2 | cut -d" " -f2)
    #echo "inside: $f11 -- $f12"

    if [ "$f22" == "$f12" ]; then
      echo "$f21 is dependent on $f11 for file $f22"
    fi

  done < file1
done < file2

Пример

./parsy.bash
"BRGTEST-244" is dependent on "BRGTEST-242" for file a.txt
"BRGTEST-244" is dependent on "BRGTEST-240" for file a.txt
"BRGTEST-221" is dependent on "BRGTEST-219" for file e.txt

Как это работает

Я оставил в этом скрипте 2 echo...команды, которые вы можете раскомментировать, чтобы визуально увидеть, как этот скрипт проходит через другие 2 файла. Когда вы раскомментируете их, вы увидите этот вывод:

$./parsy.bash | head -10
outside: "BRGTEST-244" -- a.txt
inside: "BRGTEST-242" -- a.txt
"BRGTEST-244" is dependent on "BRGTEST-242" for file a.txt
inside: "BRGTEST-240" -- a.txt
"BRGTEST-244" is dependent on "BRGTEST-240" for file a.txt
inside: "BRGTEST-219" -- e.txt
outside: "BRGTEST-244" -- b.txt
inside: "BRGTEST-242" -- a.txt
inside: "BRGTEST-240" -- a.txt
inside: "BRGTEST-219" -- e.txt

Ключевым моментом в этом является признание того, что вам нужно пройтись по содержимому file2и посмотреть, соответствует ли каждый элемент на основе ваших условий тому, что находится в file1. Для этого вам нужно вложить цикл внутрь другого цикла.

Когда у вас есть эта структура и данные проанализированы соответствующим образом, можно использовать простой оператор if, чтобы определить, совпадают ли 2-й столбец из file1и file2. Если да, мы echoсообщение, используя части, которые мы собрали.

-1
30.07.2020, 20:06
3 ответа

Я избавлю вас от лекции о хранении резервных копий.

Есть несколько способов восстановления некоторых данных.

Самое первое, что вам нужно сделать, это сделать копию устройства. Используйте

dd if=/dev/device of=some_file

Причина в том, что при попытке восстановления вы можете случайно уничтожить данные. Если вы работаете с копией, вы можете просто создать новую копию. Если вы работаете с оригиналом, его уже нет.

Вы можете попробовать testdisk, особенно если это был раздел extfs. Может быть, он сможет найти резервный суперблок, и вы сможете работать оттуда.

В противном случае программное обеспечение, подобное photorec, может восстановить некоторые из ваших изображений. Существуют и другие инструменты.

Будьте осторожны, :если ваш mkfs.ntfsсоставляет 8%, вы потеряли очень много данных, которые невозможно просто восстановить.

1
18.03.2021, 23:16

К сожалению, mkfs, вероятно, перезаписал таблицу разделов. Вам понадобится много удачи, чтобы восстановить:-(

Вы можете попробовать testdisk(https://www.cgsecurity.org/wiki/TestDisk,apt-get install testdisk)восстановить данные.

0
18.03.2021, 23:16

Если вы хотите восстановить данные, по моему опыту, R -Studio Undelete — лучший продукт на рынке. Совсем недавно парню из Stack Exchange удалось с его помощью восстановить более 100 тысяч фотографий. Это не реклама.

Собственные инструменты Linux, такие как photorec/testdisk, очень просты и часто совсем не помогают.

0
18.03.2021, 23:16

Теги

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