Primo: smetti di usare questa unità ora . Va bene rimontarlo in sola lettura, assicurati solo di non scrivere più. Sì, hai eliminato le foto. Essi possono essere recuperabili, ma più si continuano a utilizzare tale unità, meno possibilità si hanno di recuperare nulla.
Il tuo comando è stato eseguito mv pic1.jpg pictures, mv pic2.jpg picturesecc. Ogni invocazione di mvsovrascriveva il file attualmente nominato picturesda un'altra immagine.
Spostare un file (all'interno dello stesso filesystem) significa staccarlo dalla directory che lo contiene e collegarlo alla directory di destinazione con il nuovo nome. Quindi nessun dato di file è stato modificato o cancellato da questo comando, solo le voci della directory per le immagini che sono scomparse.
Puoi eseguire uno strumento che analizza lo spazio libero del tuo filesystem e cerca cose che sembrano jpeg. Fortunatamente, ogni file jpeg inizia con un'intestazione riconoscibile. Gli strumenti che cercano contenuti eliminati sono chiamati strumenti di intaglio . Ce ne sono alcuni in Ubuntu, inclusi recoverjpeg , soprattutto , testdisk , ... Se le foto si trovano su una partizione home separata o su un'unità esterna, installare uno o più di quei pacchetti e puntarli alla partizione con le immagini cancellate.
Se le foto si trovano sul disco di sistema, è necessario interrompere immediatamente l'utilizzo del sistema. Utilizzare un altro computer per scaricare un CD o USB dal vivo e avviare da questo. Qualsiasi CD live che includa testdisk dovrebbe adattarsi al conto, ma alcuni sono più facili da usare rispetto ad altri. System Rescue CD è un buon CD di ripristino del sistema per tutti gli usi. Ubuntu Rescue Remix potrebbe essere più familiare per un utente Ubuntu.
Per riferimento futuro, prendere l'abitudine di utilizzare a mv -imeno che non si desideri sovrascrivere i file. Potresti già avere un alias per mv, ma questo si mvattiva solo quando digiti direttamente sulla riga di comando, non quando mvviene invocato da uno script o dal findcomando.
$ : >pictures
$ mv -i foo.jpg pictures
mv: overwrite `pictures'?
Inoltre, se si inserisce un /nome post che dovrebbe essere il nome di una directory, verrà visualizzato un errore se la directory non esiste o se esiste un file con quel nome che non è una directory.
$ : >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
Per evitare le insidie di find, è possibile utilizzare invece la funzione ricorsiva di attraversamento della directory di bash. Devi prima accenderlo con il comando shopt -s globstar(puoi aggiungere questa riga al tuo ~/.bashrc. Quindi:
mv **/*.jpg pictures/
(Nota che in bash **/attraversa anche i collegamenti simbolici alle directory e non c'è modo di disattivarlo. Se vuoi un attraversamento ricorsivo che non guardi attraverso i collegamenti simbolici alle directory, usa zsh o find.)