Действует ли dd на уровне файловой системы или напрямую обращается к необработанному устройству?

13

Действует ли ddна уровне файловой системы или напрямую на необработанное устройство?

zhoucengchao
источник
дд работает на уровне устройства.
Pilot6
1
Это зависит от того, что вы имеете в виду. Технически он всегда читает файловую систему, иначе он не сможет определить, например, права доступа к обычному файлу / файлу устройства или тому, над чем он работает.
Кос

Ответы:

16

dd работает над тем, что вы выбрали для работы.

Вы можете взять терминальные потоки (stdin и stdout) или что-либо, представленное дескриптором файла, как входные и выходные данные dd.

И поскольку почти все в Linux имеет файловый дескриптор, вы можете использовать файлы, каталоги, символьные устройства (например /dev/null, /dev/random), блочные устройства (например, разделы / файловые системы, такие как /dev/sda1или непосредственно целые диски, например /dev/sda).

Как вы можете видеть, ddэто довольно мощный и универсальный инструмент, но убедитесь , что вы используете его с осторожностью , так как это также известно как « d ИСК d estroyer» , если вы случайно использовать его с непредвиденными аргументами.

Если вас интересует дополнительная информация dd, прочитайте ее справочную страницу (прогон man dd) или посмотрите, например, на Ответ на "dd vs cat - актуален ли dd в наши дни?" (Unix & Linux.SE) или Что означает название команды "dd"?

Byte Commander
источник
Является ли он ddмощным или использует в основном тот факт, что почти все в Linux имеет файловый дескриптор ?
AL
@AL Хороший вопрос, я действительно не знаю. Вы могли бы посмотреть на его исходный код, возможно, если вы заинтересованы. Но имеет ли это значение?
Байт Командующий
Нет, это просто придирчиво к предположению, ddчто это довольно мощный и универсальный инструмент .
AL
1
Проверьте свою команду 5 раз и напишите ее на листе бумаги и проверьте еще 5 раз. Смешение IF и OF - это мгновенное уничтожение большого количества данных.
Нельсон
3
ddимеет некоторые полезные свойства, но большую часть времени он используется способами , которые будут работать одинаково хорошо cp, cat, оболочки ... в этом ответе некоторые вещи , которые трудно не ddперечислены. Но dd if=/dev/sda of=/mnt/ext/backupлучше можно сделать, cat /dev/sda > /mnt/ext/backupк примеру,
говорит Йозеф: восстановите Монику