Isso pode ser feito
Precisamos solucionar dois problemas:
-
dd
não sabe o que fazer com diretórios
-
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.