C'è una distinzione tra i due (sottolineatura mia):
se non è possibile aprire un file di destinazione esistente, rimuoverlo e riprovare
rimuovi ogni file di destinazione esistente prima di tentare di aprirlo
Nel primo caso, se il file può essere aperto, cp
tenterà di sostituire solo il contenuto. cp
non rimuoverà il file inutilmente. Ciò manterrà i permessi e le proprietà del file originale a meno che tu non specifichi che devono essere copiati anche loro.
Il secondo caso è utile quando i contenuti non possono essere letti (come i collegamenti simbolici penzolanti).
e:nel caso in cui il file di destinazione abbia più collegamenti (hardlink), --remove-destination non distruggerà il contenuto degli altri collegamenti. Viene invece rimosso solo il collegamento della destinazione (ora sappiamo perché "rimuovi" è chiamato "scollega" nelle funzioni di sistema più profonde) e viene creato un nuovo file con un nuovo inode.