Одно существенное отличие состоит в том, что cp усекает файл назначения и начинает копировать данные из источника в файл назначения.
install, с другой стороны, сначала удаляет файл назначения.
Это важно, потому что, если целевой файл уже используется, с тем, кто использует этот файл, могут случиться плохие вещи, если у вас cp
есть новый файл поверх него. например, перезапись исполняемого файла, который может быть запущен, может дать сбой. Усечение файла данных, который существующий процесс занят чтением / записью, может вызвать довольно странное поведение. Если вы сначала просто удалите файл назначения, как это делает установка, все будет продолжаться, как обычно - удаленный файл фактически не будет удален, пока все процессы не закроют этот файл.
cp --remove-destination
в GNU coreutils.