Mario Vanoni ha scritto:
Il SO, non essendoci feedback dalla logica HD, ignora la verita`.
Per essere certi al 100%, usare cp, poi fare un dircmp(1), se
dircmp | grep different
non da risultati, successo.
Ok, typo a parte il problema che hai esposto è presente e reale.
Il punto è che con cp rimane lo stesso:
Nell'esempio che hai presentato, il SO ignora la verità, e crede di aver copiato i file.
non darà risultati, in quanto i dati sono presenti nella cache dell'harddisk e vengono letti correttamente dal SO, seppure non ancora scritti sui piattelli.
A questo punto visto che i file risultano copiati, posso dare un rm, che elimina la copia originale. A questo punto, rimane solo la copia in cache, e in caso di blackout o simili sono fottuto ugualmente sia con mv e con cp+rm (il che era ovvio, visto che mv==cp+rm).
L'unica differenza è che tra cp e rm, se lo faccio a mano, passano quei 1-2 secondi che a volte permettono alla cache dell'HD di essere scritta, se è mv a fare cp+rm esegue rm istantaneamente al completamento di cp, aumentando la probabilità di lasciare l'unica copia disponibile temporaneamente in cache.
Se si usasse (cp + sync + rm) credo che si elimini questo rischio, in quanto la copia originale non viene eliminata prima di essere sicuri di aver svuotato la cache.