O que exatamente o comando dd faz?

8

Há alguns dias, fiquei encantado ao descobrir que não é tão difícil escrever uma imagem iso em um USB sem a ajuda de um programa de terceiros projetado explicitamente para isso. Mas o comando (ou programa) que facilita isso - dd - me intriga.

De acordo com a Wikipedia, ele é projetado para copiar e converter dados brutos, mas honestamente acho essa definição muito equívoca e vaga. Eu entendo que ele permite transformar um dado em outro, mas o que acontece se o arquivo de saída especificado for muito pequeno para ser transformado no arquivo de entrada especificado?

dd if=giant_file of=tiny_file

Além disso, quando eu crio um USB inicializável com um arquivo de imagem, o USB atinge um tipo de sistema de arquivos isofs , mas se eu gravar um arquivo ou executável na unidade, ele mantém seu tipo de sistema de arquivos normal .

Qualquer esclarecimento sobre o que o comando dd realmente faz ou como funciona em um nível inferior seria muito apreciado. Obrigado!

    
por ICoffeeConsumer 01.08.2012 / 07:49

2 respostas

8

dd faz uma cópia byte-by-by da origem para o destino, com uma conversão opcional especificada pelo argumento conv . Ele realiza leituras e gravações, conforme especificado pelas opções *bs e *flag , com o intervalo definido pelas opções count , skip e seek .

what happens if the specified output file is too small to be turned into the specified input file?

Se of for muito pequeno para conter if , os dados serão truncados para caber. Observe que, se of for um arquivo regular, ele será sobrescrito.

    
por 01.08.2012 / 07:56
4

Nem vou tentar resumir o que há nesses links, mas você pode achá-los úteis (ou too-much-info ) ... Ambos são de Unix & Linux (stackexchange)

por 01.08.2012 / 08:48