Ho avuto un piccolo problema durante l'esecuzione di uno script: questo script legge un file di configurazione $HOME
e aveva ~/Downloads
al suo interno.
Invece di salvare un file all'interno ~/Downloads
quando ho eseguito lo script, poiché l'ho eseguito all'interno ~/Library
, ha creato ~/Library/~/Downloads
.
All'interno ~/Library
, l'ho fatto rm -rf ~
. Dopo 1-2 secondi ho capito il mio errore e ho smesso di usare ˆ-C
- stava cancellando il mio $HOME
.
So che alcuni file sono stati eliminati, ma non so quali. Alcuni file nascosti (bash_functions, bash_aliases) sono stati eliminati e ho avuto un backup, ma alcuni file su $HOME
non sono sottoposti a backup .
Ho fatto una rapida verifica sui miei file (vedendo accese le date modificate della cartella $HOME
), mi è sembrato ok, ma so che non posso fidarmi dei miei occhi usando questo approac.
So che se cambio un file all'interno di una cartella, Mac cambierà il flag "modificato" per quella cartella, ma solo se un figlio diretto di quella cartella è stato modificato. Esempio:
~/Downloads
- file.txt
/Mp3
- music.mp3
Quindi, se si cambia file.txt
, ~/Downloads
verrà modificato il flag modificato, ma se si cambia music.mp3
, ~/Downloads
non verrà modificato il flag modificato.
Quindi qui sta il problema: non so come rm -rf
inizia a cancellare i miei file. È sequenzialmente? È in un ordine arbitrario? Potrebbe essere che ha iniziato a cancellare ~/Pictures/Wedding
e improvvisamente è andato a fare ~/Videos
? Non lo so. Credo che non si elimini in sequenza, quindi ora posso avere una directory davvero profonda senza file importanti dopo il mio rm -rf
errore.
C'è un posto sul Mac in cui rm -rf
sono conservati tutti i file eliminati (solo i nomi dei file)? Non ho trovato nulla del genere, quindi l'ho fatto
find ~ -type d -mtime -1 > modified_folders.txt
sul mio terminale da quando ho fatto l'errore rm -rf
oggi. Il risultato del find
comando, le cartelle modificate (se si elimina un file, Mac cambia il flag modificato della cartella principale diretta) sembra non avere una struttura "profondamente arbitraria" come ~/Pictures/Personal/Birthday/2010/Cake
... posso quindi supporre che rm -rf
non abbia toccato il punto sbagliato file e sono stato in grado di fermare l'armageddon semplicemente fermandomi rm -rf ~
dopo 1-2 secondi (quindi ha eliminato solo alcuni dei file nascosti $HOME
)?
(Ho già riavviato la mia macchina, funziona bene. Sono su Snow Leopard, quindi tmutil non è una soluzione penso ...)
(Conosco già alcune soluzioni per il ripristino come TestDisk , ma sto provando a usarlo come ultimo approccio (se sbaglio nei miei presupposti sullo find
snippet).
rm -rf
e fermato come ho fatto io? Se è vero che solo i punti vengono eliminati per primi, credo di aver perso solo bash_functions e bash_aliases (probabilmente altri file / directory dot, ma le distribuzioni Python sono installate su .local e non è stato eliminato, quindi almeno da quella cartella ad altri , tutto è intatto).