Como usar o comando dd para copiar o conteúdo de uma pasta

4

Estou tentando usar o comando dd para copiar o conteúdo da pasta boot0 para os bytes iniciais do meu disco.

Este é o comando:

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

Mas recebo este erro:

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

Como posso resolver este problema?

    
por Aimad Majdou 29.05.2014 / 14:12

3 respostas

5

O principal objetivo do utilitário dd é converter e copiar arquivos.

Por exemplo:

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

Se você quiser copiar o conteúdo da pasta, use rsync :

rsync -vuar src/ dst/
Utilitário

ou cp :

cp -va src/. dst/
    
por kenorb 28.05.2015 / 00:27
4

Isso pode ser feito

Precisamos solucionar dois problemas:

  1. dd não sabe o que fazer com diretórios
  2. dd só pode copiar um arquivo de cada vez

Primeiro, vamos definir os diretórios de entrada e saída:

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

Agora vamos cd para o diretório de origem, então find relatará diretórios relativos que podemos manipular facilmente:

cd "$SOURCE"

Duplique a árvore de diretórios de $SOURCE para $TARGET

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

Arquivos duplicados de $SOURCE para $TARGET omitindo o cache de gravação (mas utilizando o cache de leitura!)

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

Por favor, note que isso não preservará os tempos de modificação de arquivos, propriedade e outros atributos.

    
por unfa 26.04.2017 / 15:54
0
  

dd funciona no arquivo que você especificar, tornando possível copiar dados entre dispositivos ou de um dispositivo para um arquivo. Isso é comumente usado para mover dados se dispositivos específicos estiverem envolvidos (crie uma imagem iso de um disco de cd-rom, por exemplo: dd if = / dev / cdrom de = mycdrom.iso) ou backup de dispositivos brutos (às vezes usados em bancos de dados RAC : dd if = / dev / raw / raw1 de = device_raw1)

     

cp é usado para duplicar o conteúdo do arquivo para um novo arquivo ou para um novo local. as coisas que você quer especificamente são preservação de propriedade, timestamp e modo (direitos), e poder reciclar a operação (= poder copiar diretórios).

Experimente este comando:

   cp -r /home/source_folder/* /home/destination_folder
    
por SweetWisher ツ 14.11.2014 / 13:14

Tags