Cos’è la directory $deleted su Windows? Artboard

In base al contenuto della domanda collegata Server Fault, i file in $Deleted sono file che qualche programma di Windows ha richiesto l'eliminazione, che tutti gli handle aperti permettono l'eliminazione del file, e che pur essendo eliminati non sono effettivamente andati.

Su Linux e altri sistemi Unix o Unix-like, quando si cancella un file che è aperto in qualche altro programma il nome del file viene rilasciato, ma la cancellazione del file viene ritardata per quando il file viene chiuso dall'ultimo programma che lo ha aperto.

Su Windows, i file possono essere aperti in diverse modalità e possono permettere (o meno) la lettura, scrittura o cancellazione simultanea (tra gli altri permessi) nei suoi permessi FILE_SHARE_*. Alcuni programmi possono chiedere specificamente FILE_SHARE_DELETE che rimuove il blocco di default della cancellazione del file. Il file può quindi essere eliminato e, sulle versioni moderne di Windows 10, il nome del file viene effettivamente rilasciato (presumibilmente) e il file rinominato in qualcosa in $deleted. Questo non è un percorso a cui Win32 può solitamente accedere.

L'API POSIX, WSL, Cygwin di solito aprono i file con la semantica di Linux, quindi passano internamente il flag FILE_SHARE_DELETE al sistema operativo. In questo modo i file possono ancora essere cancellati senza chiudere tutti gli handle.

Normalmente al riavvio quei file saranno cancellati.