Primeiro: pare de usar essa unidade agora . É ok para remontá-lo somente leitura, apenas certifique-se de não escrever mais. Sim, você excluiu as fotos. Eles podem ser recuperáveis, mas quanto mais você continuar usando essa unidade, menor a chance de recuperar algo.
Seu comando executou mv pic1.jpg pictures
, mv pic2.jpg pictures
, etc. Cada chamada de mv
sobrescreveu o arquivo atualmente denominado pictures
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 sob o novo nome. Portanto, nenhum dado de arquivo foi modificado ou excluído por esse comando, apenas as entradas de diretório das imagens que desapareceram.
Você pode executar uma ferramenta que vasculha o espaço livre do seu sistema de arquivos e procura coisas que pareçam jpegs. Felizmente, todo arquivo jpeg começa com um cabeçalho reconhecível. As ferramentas que procuram conteúdo excluído são chamadas ferramentas de escultura . Existem alguns no Ubuntu, incluindo recoverjpeg , acima de tudo , testdisk ,… Se as fotos estiverem em uma partição doméstica separada ou em uma unidade externa, instale uma 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 live CD ou USB e inicialize a partir dele. Qualquer um dos CDs ao vivo que inclua testdisk deve ser adequado, mas alguns são mais fáceis de usar do que outros. O CD de Recuperação do Sistema é um bom CD de recuperação do sistema para fins gerais. O Ubuntu Rescue Remix pode ser mais familiar para um usuário do Ubuntu.
Para referência futura, adquira o hábito de usar mv -i
, a menos que você pretenda sobrescrever arquivos. Você pode já ter um alias para mv
, mas isso só entra em ação quando você digita mv
diretamente na linha de comando, não quando mv
é invocado por um script ou pelo comando find
.
$ : >pictures
$ mv -i foo.jpg pictures
mv: overwrite 'pictures'?
Além disso, se você colocar um /
após 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, não é um diretório.
$ : >pictures
$ mv foo.jpg pictures/
mv: cannot move 'foo.jpg' to 'pictures/': Not a directory
$ rm pictures
$ mv foo.jpg pictures/
mv: cannot move 'foo.jpg' to 'pictures/': Not a directory
Para evitar as armadilhas de find
, você pode usar o recurso de passagem de diretório recursivo do bash. Você precisa ativá-lo primeiro com o comando shopt -s globstar
(você pode adicionar essa linha ao seu ~/.bashrc
. Então:
mv **/*.jpg pictures/
(Note que no bash, **/
também percorre links simbólicos para diretórios, e não há como desativá-lo. Se você quiser uma travessia recursiva que não olhe através de links simbólicos para diretórios, use zsh ou find. )