Как использовать команду dd для копирования содержимого папки

Я пытаюсь использовать команду dd для копирования содержимого папки boot0 в начальные байты моих дисков.

Это команда:

sudo dd if=boot0/ of=/dev/sdb ibs=440 obs=440 count=1 

Но я получаю эту ошибку:

dd: error reading ‘boot0/’: Is a directory
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000209512 s, 0.0 kB/s

Как я могу решить эту проблему?

8
задан 28 May 2015 в 05:05

3 ответа

Основная цель dd утилита состоит в том, чтобы преобразовать и скопировать файлы.

, Например:

dd if=filename of=filename2 conv=ucase
dd if=/dev/urandom of=myrandom bs=100 count=1

, Если требуется скопировать содержание папки, используют любой rsync:

rsync -vuar src/ dst/

или cp утилита:

cp -va src/. dst/
0
ответ дан 28 May 2015 в 05:05

dd работает над файлом, который Вы определяете, делая способным скопировать данные между устройствами, или от устройства до файла. Это является наиболее часто используемым для движущихся данных, если устройства конкретно включены (создайте изображение ISO из диска CD-ROM, например: dd, если =/dev/cdrom of=mycdrom.iso), или резервные неструктурированные устройства (иногда используемый в базах данных RAC: dd, если =/dev/raw/raw1 of=device_raw1)

CP используется для дублирования содержания файла в новый файл или в новое местоположение. вещи, которые Вы конкретно хотите, существуют сохранение владения, метки времени и режима (права) и способность рекурсивно вызвать операцию (=being способный скопировать каталоги).

Попытка эта команда:

   cp -r /home/source_folder/* /home/destination_folder
0
ответ дан 28 May 2015 в 05:05

Это может быть сделано

Нам нужны к обходному решению две проблемы:

  1. dd не знает, что сделать с каталогами
  2. dd может только скопировать один файл за один раз

Сначала давайте определим входные и выходные каталоги:

SOURCE="/media/source-dir"
TARGET="/media/target-dir"

Теперь позвольте нам cd в исходный каталог так find сообщат относительные каталоги, которыми мы можем легко управлять:

cd "$SOURCE"

Копируйте дерево каталогов от $SOURCE кому: $TARGET

find . -type d -exec mkdir -p "$TARGET{}" \;

Дубликаты файлов от $SOURCE кому: $TARGET исключение кэша записи (но использование кэша считывания!)

find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;

Обратите внимание на то, что это не сохранит время изменения файла, владение и другие атрибуты.

7
ответ дан 28 May 2015 в 05:05
  • 1
    На самом деле никакой I' m уверенный это can' t быть emacs, с тех пор emacs не установлен по умолчанию. Установка emacs, вероятно, переопределила Вашу предыдущую конфигурацию. – kos 14 December 2015 в 22:50

Другие вопросы по тегам:

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