Отсортируйте вывод находки прежде, чем передать по каналу к openssh

Я думаю, что самый простой ответ - то, что dd, dd_rescue и ddrescue не разработаны для нанесения поражения схемам защиты от копирования. Они не делают предположений о формате данных и пытаются поддержать целостность всего оригинала на дисковых данных.

В случае dd Я подозреваю, что это завершается из-за намеренной ошибки чтения на диске, который является частью схемы защиты от копирования. Это помогло бы подтвердить это при включении вывода командной строки от dd с Вашим вопросом. Можно также найти некоторые ошибки чтения зарегистрированными в dmesg команда производится.

Можно добраться dd скопировать больше файла путем передачи noerror отметьте к нему на командной строке. Однако можно найти, что это просто оставляет Вас с повреждением в Вашем заключительном изображении.

3
25.11.2012, 16:50
2 ответа

Можно использовать xargs получить то, что Вы хотите.

find . -type f -print0 | sort -z | xargs -0 -n1 openssl sha512

-n1 опция говорит xargs только позволять одному аргументу быть данным openssl команда. -print0, -z и -0 опции препятствуют тому, чтобы конвейер повредился, если существуют "проблемные" символы (как встроенная новая строка) в именах файлов.

5
27.01.2020, 21:14
  • 1
    , который работает отлично! Я не использовал xargs прежде, но я вижу, что это очень полезно для таких ситуаций. Замечательно изучить это find, sort и xargs у всех есть поддержка завершенных пустым указателем объектов, таким образом, они могут все быть объединены в единственном конвейере как это! –  TachyonVortex 25.11.2012, 18:18

Передайте его по каналу к xargs-L 1 openssl sha512, как это:

find . -type f | sort | xargs -L 1 openssl sha512

xargs берет выводы и выполняет его как командную строку программы, "-L 1" ограничивает его одной строкой на выполнение.

1
27.01.2020, 21:14

Теги

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