Quais outras ferramentas devo usar para ler e gravar arquivos com truncamento, buscando e pulando. As opções de linha de comando do dd parecem inconvenientes e estranhas e eu não gosto de escolher entre o modo de busca lento, mas preciso ( bs=1
) e o modo rápido, mas inflexível ( bs=4k
ou o que seja).
Existem ferramentas mais modernas para ler 555 bytes de um arquivo (ou tubo ou soquete ou dev) da posição 31337 e gravá-los no outro arquivo na posição 128205 (usando os blocos 512 + 43), com ou sem truncamento?
dd
. Você sempre pode colocar um wrapper de script de shell em volta se não gostar da interface.dd
está no padrão POSIX , que é uma enorme vantagem.status=noxfer
não é padrão e está quebrada e que eu precisoiflag=fullblock
(omitir em algum script => dados quebrados).bs=1
=> todo o pipeline está lento. Por exemplo, talvez eu queira despejar o arquivo de vídeo a partir de algum quadro exato. 2. "Demora um pouco de aritmética" => não é muito adequado para oneliners e comandos de rotina de shell.dd conv=seek_bytes
fará oseek
trabalho com precisão de bytes.Respostas:
Existe a ferramenta
ddrescue
(cuidado, tambémdd_rescue
existe um programa diferente com quase a mesma funcionalidade). Ele usa a sintaxe mais familiar com o traço único para traço curto ou duplo para opções longas. Na página do manual:fonte
ddrescue - -
->Infile and outfile are the same.
,ddrescue /dev/stdin /dev/stdout
->Infile and outfile are the same.
. Mau começo da história ...dd_rescue
. Emite um aviso de que o arquivo (stdin) não é procurável, mas continua. Você pode tentar. No entanto,ddrescue
parece mais completo e maduro.ddrescue
está certo, tubos não são procuráveis. Se você deseja começar a ler em um ponto específico de um arquivo, precisará conceder acesso ao arquivo em questão, não aos dados canalizados de outro programa. Lembre-se também de que o uso de canos luta contra esse seu desejo para obter a velocidade máxima, pois a única maneira de simular a busca em um cano é ler e jogar fora as peças que você não deseja processar. Buscar dentro de um arquivo real é muito mais eficiente.dcfldd é outra alternativa dd. Ele não aborda a pergunta do OP sobre flexibilidade de busca de entrada / saída, mas pode ser útil para outras pessoas que chegam aqui por meio da pesquisa no Google.
É baseado no gnu dd, com os seguintes recursos adicionais:
fonte
Uma boa alternativa é
pv
. Não apenas calcula automaticamente o tamanho de bloco mais eficiente, acelerando as coisas, mas também fornece progresso, entre outras coisas. Seu uso é simples:Também funciona bem com a compressão. Uma maneira rápida de fazer backup e compactar um disco de uma vez é a seguinte:
Você pode aprender mais aqui .
fonte