Зачем использовать dd вместо cp для создания загрузочного диска?

Нет. Хотя доступ к встроенным функциям можно получить через то же пространство имен, что и к функциям, они по-прежнему являются отдельными объектами и могут быть доступны, даже если они затенены функцией, с помощью builtinвстроенной команды (для дополнительного удовольствия, вы можете конечно переопределить builtin☺ ). Заметьте также, что если вы unset -f echoу вас будет встроенная функция обратно.

Встроенные функции также, как следует из названия, встроены и реализованы (в случае bash )в коде C, сгенерированном из таких файлов, как echo.def .

7
26.12.2019, 15:31
2 ответа

Одно отличие заключается в эффективности и, следовательно, в скорости. Например, вы можете получить байты один за другим и скопировать их на устройство с помощьюcat:

cat archlinux.iso > /dev/sdx

Теоретически cat будет перемещать каждый байт независимо. Это медленный процесс, хотя на практике будут задействованы буферы.

С ddи хорошим размером блока (, обычно связанным с физическим размером блока ), это будет быстрее.

С cpэто зависит от размера буфера, используемогоcp(неподконтрольным вам )и другими буферами на пути. Теоретически эффективность находится между catи dd.

Аналогия :это как переливать содержимое стакана в другой стакан.

catбудет делать это по одной капле за раз.

ddбудет использоваться ложка, размер ложки определяется вами (применяются системные ограничения)

cpбудет использовать свою собственную ложку, и вы не знаете, насколько она велика.

9
27.01.2020, 20:18

Я использую его в основном из-за status=progress, о котором вы упомянули; что я могу сказать, я нетерпелив и должен знать:-)

Даже если вы забыли добавить это и запустили задание, вы можете отправить ему сигнал SIGUSR1, и он напечатает текущую статистику ввода-вывода в stderr (, который, если вы его не перенаправили, является вашим терминалом ).

0
27.01.2020, 20:18

Теги

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