Se il numero di file che devono essere eliminati supera di gran lunga il numero di file lasciati indietro, potrebbe non essere l'approccio più efficiente camminare sull'albero dei file da eliminare e fare tutti quegli aggiornamenti del filesystem. (È analogo a fare una goffa gestione della memoria contata con riferimento ai riferimenti, visitare ogni oggetto in un grande albero per rilasciare il suo riferimento, invece di trasformare tutto ciò che non desiderato nella spazzatura in un solo passaggio, e quindi spazzare attraverso ciò che è raggiungibile per ripulire.)
Vale a dire, clonare le parti dell'albero che devono essere mantenute su un altro volume. Ricreare un nuovo filesystem vuoto sul volume originale. Copia i file conservati nei loro percorsi originali. Questo è vagamente simile alla copia della raccolta dei rifiuti .
Ci saranno dei tempi di inattività, ma potrebbe essere migliore delle continue cattive prestazioni e interruzione del servizio.
Potrebbe non essere pratico nel tuo sistema e nella tua situazione, ma è facile immaginare casi ovvi in cui questa è la strada da percorrere.
Ad esempio, supponiamo di voler eliminare tutti i file in un filesystem. Quale sarebbe il punto di ricorrere e cancellare uno per uno? Basta smontarlo e fare un "mkfs" sopra la partizione per creare un filesystem vuoto.
O supponi di voler eliminare tutti i file tranne una mezza dozzina di file importanti? Prendi la mezza dozzina da lì e ... "mkfs" sopra.
Alla fine c'è un punto di pareggio quando ci sono abbastanza file che devono rimanere, che diventa più economico fare la cancellazione ricorsiva, tenendo conto di altri costi come qualsiasi tempo morto.