copiar os inexistentes, sobrescrever apenas corrompidos

1. copiar os inexistentes, sobrescrever apenas corrompidos

Sidnelson Teixeira
sidnelson

(usa Linux Mint)

Enviado em 24/03/2013 - 18:45h

Boa noite, guerreiros.

Quero copiar o conteúdo de uma pasta para outra pasta, sobrescrevendo apenas os arquivos corrompidos.

Eis o que ocorreu na primeira tentativa de copiar a pasta (de um HD externo para o HDD da minha nova máquina):
cp -r Pictures Documents Music /home/mestre/
cp: reading `Pictures/2010-10-31/CIMG0591.JPG': Input/output error
cp: failed to extend `/home/mestre/Pictures/2010-10-31/CIMG0591.JPG': Input/output error
cp: reading `Pictures/2010-10-31/CIMG0592.JPG': Input/output error
cp: failed to extend `/home/mestre/Pictures/2010-10-31/CIMG0592.JPG': Input/output error
...

Isso me deixou com uma pasta cheia de arquivos bons e alguns corrompidos, que eu quero substituir.

tentei a opção -f, mas os erros continuam aparecendo. Aliás nem o man nem http://www.vivaolinux.com.br/artigo/Comandos-basicos-do-Linux?pagina=3 me esclareceram exatamente o que o -f vai fazer.

cp -rf Pictures Documents Music /home/mestre/
cp: reading `Pictures/2007_12_21/CIMG5689.JPG': Input/output error
cp: failed to extend `/home/mestre/Pictures/2007_12_21/CIMG5689.JPG': Input/output error
cp: reading `Pictures/2007_12_21/CIMG5742.JPG': Input/output error
cp: failed to extend `/home/mestre/Pictures/2007_12_21/CIMG5742.JPG': Input/output error


Consigo abrir os arquivos originais numa boa, só as cópias estão corrompidas (tamanho 0 bytes).



  


2. Re: copiar os inexistentes, sobrescrever apenas corrompidos

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 24/03/2013 - 19:54h

tu podes também usar o comando rsync
de uma lida na manpage

$ man rsync

espero que ajude


3. Re: copiar os inexistentes, sobrescrever apenas corrompidos

Sidnelson Teixeira
sidnelson

(usa Linux Mint)

Enviado em 24/03/2013 - 21:03h

danniel-lara escreveu:

tu podes também usar o comando rsync
de uma lida na manpage

$ man rsync

espero que ajude


Ajudou, obrigado, mas ainda não consegui resolver.

fiz


cd /home/mestre
rsync -vr /media/mestre/CicaSeagate500NTFS/BcpMauro2013/

Tudo que estava corrompido continua corrompido.




4. Re: copiar os inexistentes, sobrescrever apenas corrompidos

Ton Melo
IZhaq_Melo

(usa FreeBSD)

Enviado em 25/03/2013 - 13:55h

como voce faz para testar se a pasta ta corrompida?


5. Re: copiar os inexistentes, sobrescrever apenas corrompidos

Sidnelson Teixeira
sidnelson

(usa Linux Mint)

Enviado em 25/03/2013 - 18:28h

ton_melo escreveu:

como voce faz para testar se a pasta ta corrompida?


Ton_melo,
Várias formas:

1- Eu vejo a lista de input/output errors que o próprio "cp" me dá ao falhar a transferência do arquivo (por que ele não apaga o arquivo corrompido em vez de deixá-lo lá eu não sei);

2- Se for uma foto, não aparece um thumbnail do arquivo ao explorar a pasta pelo Nautilus;

3- Boa parte dos arquivos corrompidos tem tamanho 0kB (ao menos é isso que o Nautilus me diz); e

4- Os arquivos de áudio tem um tamanho não nulo bem menor que o original, geralmente truncado depois de alguns segundos.

A man-page do rsync me diz que o programa usa o tamanho do arquivo para decidir se sobrescreve ou não. Acho que o melhor parâmetro de decisão seria esse mesmo, mas o comando que eu usei parece não ter selecionado este critério.

O outro parâmetro de decisão seria tentar abrir cada arquivo com seu programa padrão, mas acho que custaria muito tempo.

"Rsync finds files that need to be transferred using a "quick check" algorithm (by default) that looks for files that have changed in size or in last-modified time."

Obrigado pela ajuda.




6. Re: copiar os inexistentes, sobrescrever apenas corrompidos

Sidnelson Teixeira
sidnelson

(usa Linux Mint)

Enviado em 25/03/2013 - 21:38h

[bf]
rsync -vr /media/mestre/CicaSeagate500NTFS/BcpMauro2013/
[/bf]

Alguém sabe me dizer por que o comando acima não sobrescreveu os arquivos corrompidos, i.e. com tamanho menor que os originais?


7. Re: copiar os inexistentes, sobrescrever apenas corrompidos

Sidnelson Teixeira
sidnelson

(usa Linux Mint)

Enviado em 26/03/2013 - 21:25h

ton_melo escreveu:

como voce faz para testar se a pasta ta corrompida?


Obrigado pela pergunta! procurei o comando certo, aí vai para o próximo interessado:
pelo que diz a man page, a opção certa é --size-only,

usei rsynk -vr --size-only origem destino.
No entanto, ainda tenho arquivos corrompidos, e não tenho problemas para lê-los no HD original. Ainda segundo a man page, eu nem deveria precisar desta opção, pois sem qualquer parâmetro opcional ele já compararia DATA e TAMANHO. A opção --size-only apenas dispensa a comparação de data.

Temo agora ter que usar a opção --checksum, que vai fazer um checksum de cada arquivo...

Estou suspeitando que a única forma de completar isso será ligar novamente meu computador antigo e tentar a transferência via rede (rezando para o antigo não queimar a placa mãe no processo)








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts