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 pictures
ecc. Ogni invocazione di mv
sovrascriveva il file attualmente nominato pictures
da 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 -i
meno che non si desideri sovrascrivere i file. Potresti già avere un alias per mv
, ma questo si mv
attiva solo quando digiti direttamente sulla riga di comando, non quando mv
viene invocato da uno script o dal find
comando.
$ : >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.)