Eu tentei descobrir isso sozinho. Aqui está o comando que usei no terminal:
find . -name "*.jpg" -exec mv {} pictures \;
Eu não criei um diretório chamado pictures primeiro. O que aconteceu foi um arquivo chamado pictures.gif foi criado. Ele encontrou os arquivos e os substituiu à medida que os movia?
O que é esse arquivo pictures.gif que foi criado como resultado deste comando?
Os arquivos ainda estão possivelmente na unidade em algum lugar?
command-line
find
jtnewhou
fonte
fonte
/
-o! Sempre! Então só pode ser um diretório.Respostas:
Primeiro: pare de usar esta unidade agora . Não há problema em remontá-lo somente leitura, apenas certifique-se de não escrever mais nada. Sim, você excluiu as imagens. Eles podem ser recuperáveis, mas quanto mais você continuar usando essa unidade, menos chances terá de recuperar alguma coisa.
Seu comando foi executado
mv pic1.jpg pictures
,mv pic2.jpg pictures
etc. Cada chamada demv
substituição do arquivo atualmente nomeadopictures
por outra figura.Mover um arquivo (dentro do mesmo sistema de arquivos) significa desanexá-lo do diretório que o contém e anexá-lo ao diretório de destino com o novo nome. Portanto, nenhum dado do arquivo foi modificado ou excluído por este comando, apenas as entradas do diretório para as imagens que desapareceram.
Você pode executar uma ferramenta que vasculha o espaço livre do seu sistema de arquivos e procura coisas que parecem jpegs. Felizmente, todo arquivo jpeg começa com um cabeçalho reconhecível. As ferramentas que procuram conteúdo excluído são chamadas de ferramentas de escultura . Existem alguns no Ubuntu, incluindo recoverjpeg , acima de tudo , testdisk ,… Se as fotos estiverem em uma partição inicial separada ou em uma unidade externa, instale um ou mais desses pacotes e aponte-os para a partição com as imagens excluídas.
Se as fotos estiverem no disco do sistema, você precisará parar de usar o sistema imediatamente. Use outro computador para baixar um CD ou USB ativo e inicializá-lo. Qualquer um dos CDs ao vivo que incluem testdisk deve atender à demanda, mas alguns são mais fáceis de usar do que outros. O System Rescue CD é um bom CD de resgate de sistema de uso geral. O Ubuntu Rescue Remix pode ser mais familiar para um usuário do Ubuntu.
Para referência futura, adquira o hábito de usar, a
mv -i
menos que pretenda sobrescrever arquivos. Você já pode ter um alias paramv
, mas isso só entra em ação quando você digitamv
diretamente na linha de comando, não quandomv
é invocado por um script ou pelofind
comando.Além disso, se você colocar um
/
nome depois de um nome que deveria ser o nome de um diretório, você receberá um erro se o diretório não existir ou se houver um arquivo com esse nome que não seja um diretório.Para evitar as armadilhas
find
, você pode usar o recurso de passagem de diretório recursivo do bash. Você precisa ativá-lo primeiro com o comandoshopt -s globstar
(você pode adicionar esta linha ao seu~/.bashrc
. Em seguida:(Observe que no bash
**/
também percorre links simbólicos para diretórios e não há como desativar isso. Se você deseja um percurso recursivo que não olha através de links simbólicos para diretórios, use zsh ou find.)fonte
/
depoispictures
no segundo conjunto de exemplos? Ou seja, não deveria sermv foo.jpg pictures/
(com o/
) nos doismv
comandos?Receio que você tenha perdido todas as suas fotos naquele único arquivo. É possível recuperar alguns arquivos usando ferramentas forenses, como a principal, mas a taxa de sucesso diminui quanto mais tempo você usar a mídia (disco). (para ser mais preciso, quanto mais tempo a partição estiver montada .)
Da próxima vez, quando você se referir a um diretório, adicione uma barra e adicione a
-i
opção de pedir confirmação, caso já exista um arquivo:fonte