O meu comando $ mv '* .mobi' concatenou meus arquivos?

0

Ao consolidar ebooks, me deparei com o que parecia ser uma solução útil para minha operação específica; ou seja, eu queria mover todos os arquivos mobi de diferentes sub-pastas para uma pasta central chamada, imaginativamente, 'mobi' ...

   $ find -name '*.mobi' -exec mv {} /mobi \;

E, sim, eu fiz um backup ... exatamente um diretório acima. E só percebi o que fiz até depois. (Originais e backup movido / desaparecido.)

Após algumas pesquisas, descobri o que parece ser uma pasta, mas parece um arquivo .mobi no meu diretório raiz. É cerca de 1.5mb (de 30 ebooks); abrir em Atom me dá rabiscos (não código).

Suponho que isso seja algum tipo de amálgama de covardia de meus arquivos anteriores, derretidos grotescamente um no outro como a coisa de The Thing.

Existe uma maneira de desfazer minha tolice?

    
por chris.r 12.02.2017 / 19:59

1 resposta

7

O comando que você executou executará mv <file> /mobi para cada <file> que encontrou. Existem vários resultados possíveis:

  1. /mobi já existia, como um diretório para o qual seu usuário pode escrever em: então cada um dos seus arquivos mobi está agora dentro do diretório /mobi (se algum deles tiver o mesmo nome, um deles terá sobrescreveu o outro);

  2. /mobi já existia como um arquivo permitido ao usuário sobrescrever ou não existia, mas o usuário pode criar arquivos sob / : então cada um dos seus arquivos mobi terá sobrescrito, em seqüência, o arquivo /mobi , que agora tem, como seu conteúdo, último dos arquivos que find encontraram;

  3. caso contrário, todos os comandos mv devem ter falhado e nada foi movido.

O cenário (2) realmente soa provável se você executou seu comando como raiz (que o $ sugere contra). Nesse caso, todos os seus arquivos, exceto o último que mv operado está perdido. Eu não consigo pensar em um sensacional maneira que mv iria concatenar arquivos.

    
por 12.02.2017 / 20:17