Recuperato file cancellati su Mac dalla riga di comando


24

Ho eliminato per errore un file eseguendo:

rm -rf ./Desktop/myScript.sh

Penso che sia possibile recuperare il file, perché il rmcomando rimuove temporaneamente. Come posso recuperare il file cancellato su Mac OSX?


1
Ti consigliamo di cercare strumenti di ripristino di HFS +, supponendo che tu stia utilizzando HFS +. Il sito Apple SE probabilmente ne sa di più.
derobert,

1
Aneddotico, ma mio suocero ha accidentalmente cancellato una grande directory di foto su Mac OS X ed è riuscito a recuperarne la maggior parte utilizzando uno strumento scaricato (penso che sia costato denaro, ma ha avuto una prova per uno o due file , quindi puoi verificare se funzionerà e nel tuo caso sarebbe sufficiente). discussioni.apple.com/it/thread/…
ire_and_curses

Risposte:


28

MacOS è un sistema operativo Unix e rmsignifica "arrivederci". L'interfaccia della GUI ti consente di spostare un file nel cestino (che puoi quindi recuperare) ma non è quello che hai fatto. Se si dispone di un backup (ad es. Time Machine in esecuzione), si viene salvati.

Una precisazione

A rigor di termini (come sottolinea @ire_and_curses) a rmelimina semplicemente la voce della directory per il file lasciando intatti i blocchi del disco utilizzati. Se potessi sospendere il filesystem in cui si trovava il file, ci sono metodi avanzati con cui puoi provare a riscoprire il contenuto di questi blocchi. Ci sono anche alcuni strumenti di recupero che possono essere acquistati per recuperare la perdita. Il problema centrale è che nient'altro riutilizza i blocchi del disco rappresentati dal tuo file.

MacOS ha anche un comando di rimozione sicura ( srm) che sovrascrive un file prima che venga modificato unlinkrendendolo irrecuperabile. Uso il unlinktermine poiché questa è la chiamata di sistema sottostante associata al rmcomando di una shell . Questo pone le basi per la prossima parte di questa discussione, di seguito.

Nota a margine

[Dovrei affrettarmi ad aggiungere che anche se hai sovrascritto un disco più volte, ci sono modi per leggere ciò che è stato scritto una dozzina o più volte prima. Sanificare correttamente un disco per lo smaltimento richiede davvero un bagno acido, un grosso martello e un trituratore. ]

unlinking un file decrementa il conteggio dei collegamenti inode del file. Se questo valore raggiunge lo zero, il file viene eliminato dalla directory del filesystem e i suoi blocchi su disco vengono liberati per il riutilizzo. Questo succede solo quando nessun processo ha il file aperto. È spesso fonte di confusione per gli amministratori scoprire che un filesystem sta utilizzando grandi quantità di spazio che non può essere giustificato dalla semplice somma dei blocchi del disco (con qualcosa di simile du). Molto spesso il motivo è che un file aperto è stato rimosso, in modo che non sia più rappresentato nella sua directory. Il motivo è che i blocchi del disco rimangono inutilizzati fino al termine dell'ultimo processo che utilizza il file.

Aprire un file e immediatamente unlink installarlo è in realtà una pratica comune per la creazione di file sicuri e temporanei. Strumenti come lsofquesti possono esporre questi file altrimenti invisibili se cerchi file con un conteggio dei collegamenti (NLINK) pari a zero.

In Unix e Linux (di cui MacOS è un marchio Unix), rmsegue la filosofia Unix di "fai-da-te" senza fanfara, se possibile. Cioè, se hai i permessi per rimuovere un file (cioè la tua directory permette la scrittura), rmfa esattamente quello che chiedi. È possibile che si desideri creare un alias di shell rm='rm -i'che richiede conferma prima di eseguire l'operazione. Utilizzando l' -finterruttore con rmsostituzioni che, se necessario. Un alias rmè molto utile quando globrimuovi like rm *.log. Cioè, hai la possibilità di saltare un file nell'elenco.


Complimenti per la sezione "chiarimenti".
Tim

La funzione "Secure Erase Cestino" di Mac OS utilizza un modello studiato per cancellare effettivamente i pozzi quantici sui moderni dischi rotanti. Sulla memoria a stato solido, utilizza la funzionalità "trim" per posizionare i blocchi di memoria associati al file all'inizio della coda "da cancellare" nel controller di memoria. Usali se vuoi veramente il contenuto dal tuo disco, ma nota che impiegano molto tempo a cancellare un disco rotante.
Wexxor,

4

A seconda del contenuto, ma è possibile utilizzare diversi software di terze parti per farlo, ad esempio:

e molti altri.

Puoi trovare altre app digitando "recupero dati" nell'App Store.


Il modo più avanzato è quello di avviare il tuo OSX in modalità di ripristino (o smontare la tua partizione se puoi) e cercarlo manualmente (se ricordi qualche testo specifico dal tuo script).

Qualche esempio:

diskutil list
sudo cat /dev/disk0s2 | strings | grep -C20 "my_stuff"

1
Ho usato Wondershare e ho ottenuto un po 'di codice I "git clean -f"' d
fionbio

2
A partire dal 2019 il trucco di scansione del dispositivo a blocchi è impossibile o più difficile da eseguire su OSX ora a causa della crittografia APFS. Ho i dati con successo in questo modo su Linux però: P
primehunter326
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.