Come posso scoprire quali file sono stati cancellati da 'rm -rf'?

1

Ho avuto un piccolo problema durante l'esecuzione di uno script: questo script legge un file di configurazione su $HOME , e aveva ~/Downloads al suo interno.

Invece di salvare un file all'interno di ~/Downloads quando ho eseguito lo script, poiché l'ho eseguito all'interno di ~/Library , ha creato ~/Library/~/Downloads .

Dentro ~/Library , ho fatto rm -rf ~ . Dopo 1-2 ho capito il mio errore e ho smesso di usare ˆ-C - stava cancellando il mio $HOME .

So che alcuni file sono stati cancellati, 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 stati sottoposti a backup.

Ho fatto una rapida verifica sui miei file (vedendo le date modificate della cartella su $HOME ), mi è sembrato ok, ma so che non posso fidarmi dei miei occhi usando questo approccio.

So che se cambio un file in una cartella, Mac cambierà il flag "modificato" per quella cartella, ma solo se è stato modificato un figlio diretto di quella cartella. Esempio:

~/Downloads
    - file.txt
    /Mp3
        - music.mp3

Quindi, se cambi file.txt , ~/Downloads avrà il suo flag modificato cambiato, ma se cambi music.mp3 , ~/Downloads non avrà il suo flag modificato modificato.

Quindi qui sta il problema: non so come rm -rf inizi a cancellare i miei file. Is è sequenzialmente? È in un ordine arbitrario? Potrebbe essere iniziato a cancellare ~/Pictures/Wedding e improvvisamente è andato a fare ~/Videos ? Non lo so. Credo che non venga eliminato in modo sequenziale, quindi ora posso avere una directory molto profonda senza file importanti dopo il mio errore rm -rf .

C'è un posto nel mac in cui sono conservati tutti i file cancellati con rm -rf (solo i nomi dei file)? Non ho trovato nulla di simile, quindi l'ho fatto

find ~ -type d -mtime -1 > modified_folders.txt

sul mio terminale dato che oggi ho scambiato il rm -rf sbagliato. Il risultato del comando find , le cartelle modificate (se elimini un file, Mac cambia il flag modificato della sua cartella principale padre) sembra non avere una struttura "profonda arbitraria" come ~/Pictures/Personal/Birthday/2010/Cake ... posso quindi assumere rm -rf non ha toccato i file sbagliati e sono riuscito a fermare l'armageddon semplicemente fermando rm -rf ~ dopo 1-2 secondi (quindi ha eliminato solo alcuni dei file nascosti su $HOME )?

(Ho già riavviato la mia macchina, funziona perfettamente. Sono su Snow Leopard, quindi tmutil non è una soluzione credo ...)

(conosco già alcune soluzioni per recuperare come TestDisk esistono, ma sto cercando di usarlo come ultima approccio (se ho sbagliato nelle mie ipotesi sul find snippet).

    
posta Somebody still uses you MS-DOS 26.10.2011 - 21:43
fonte

3 risposte

4

Non c'è modo di sapere con certezza esattamente quali file sono stati cancellati. Non c'è nessuna lista memorizzata, nessun cestino, questo è unix (bene BSD) e non si ottengono buone seconde possibilità con rm -rf

Come hai visto, puoi dedurre ciò che è stato cancellato per primo osservando il comportamento del comando rm.

Ho creato una cartella con alcune sottocartelle, incluse alcune con un punto all'inizio del nome e ho inserito alcuni file in ciascuna.

L'ordine è sempre alfabetico con le directory prefissate nascoste che vengono eliminate per prime.

Se si confronta un backup con la struttura della directory, dopo aver spostato in ordine alfabetico e aver iniziato a cercare i file nel backup che si trovano ancora nell'unità principale, penso che si possa essere certi di non aver perso nessun altro file .

    
risposta data 26.10.2011 - 21:56
fonte
3

rm cancella le voci della struttura / directory inode senza creare un log. Sarai salvato se hai attivato la verifica dei file, ma non è una cosa predefinita su Mac OS X.

Per quanto riguarda la situazione descritta, hai le seguenti opzioni:

  • attivare un software non eliminato per tentare di trovare frammenti di file o dati che assomigliano a voci di file / inode e filtrare tali risultati per i potenziali file modificati nell'intervallo di tempo di rm.
  • confronta la struttura attuale delle directory con un backup recente ( tmutil compare sarebbe uno strumento Lion ideale, ma puoi usare BackupLoupe o altri se il tuo backup è TimeMachine)
risposta data 26.10.2011 - 21:50
fonte
2

Is there some place on the mac where all deleted files with rm -rf are kept (just the filenames)?

Come altri hanno già sottolineato: nessun posto simile esiste a meno che tu non abbia il tuo filesystem configurato con auditing e snapshotting.

Tuttavia, puoi utilizzare Time Machine per capire cosa è cambiato. Stavi facendo un normale backup di Time Machine del tuo disco che conteneva la tua home directory, giusto?

In questo caso: apri Time Machine per la tua home directory e torna indietro nel tempo appena prima di eseguire rm . Dovresti essere in grado di vedere i file che sono cambiati o mancanti. E persino ripristinarli. Non è una grande vista nel sistema, ma lo farà in un pizzico.

    
risposta data 27.10.2011 - 04:52
fonte

Leggi altre domande sui tag