comando “find… -exec mv…” criou um arquivo com conteúdo estranho

0

Eu queria mover os arquivos binários da pasta /myhome/sourcedir para /myhome/targetdir . Eu usei um comando find /myhome/sourcedir -type f -cmin +3 -exec mv '{}' /myhome/targetdir ';'

A pasta /myhome/sourcedir existia antes desse comando ser executado, mas a pasta /myhome/targetdir não existia. Eu apenas esqueci de criar /myhome/targetdir .

Resultado deste comando - o novo arquivo /myhome/targetdir foi criado. O arquivo é muito grande e contém muitos símbolos estranhos))

Como restaurar todos os meus arquivos?

    
por Victor Mezrin 24.04.2015 / 20:46

1 resposta

5

Suponha que find encontrou 3 arquivos: a, b e c. Isso resultou em 3 comandos:

mv a /myhome/targetdir
mv b /myhome/targetdir
mv c /myhome/targetdir

então, a foi renomeada para / myhome / targetdir, então b foi renomeada para / myhome / targetdir (destruindo o que costumava ser a), e então c foi renomeado para / myhome / targetdir, destruindo o que costumava ser b. O arquivo c está bem (acabou de ser renomeado). Os outros arquivos estão com problemas. Dê uma olhada em Os arquivos sobrescritos podem ser recuperados? . Você pode recuperar algo.

No futuro, usando:

mv -t /myhome/targetdir '{}' 

Seria mais seguro.

    
por 24.04.2015 / 20:59

Tags