Одно существенное отличие состоит в том, что cp усекает файл назначения и начинает копировать данные из источника в файл назначения.
install, с другой стороны, сначала удаляет файл назначения.
Это важно, потому что, если целевой файл уже используется, с тем, кто использует этот файл, могут случиться плохие вещи, если у вас cp
есть новый файл поверх него. например, перезапись исполняемого файла, который может быть запущен, может дать сбой. Усечение файла данных, который существующий процесс занят чтением / записью, может вызвать довольно странное поведение. Если вы сначала просто удалите файл назначения, как это делает установка, все будет продолжаться, как обычно - удаленный файл фактически не будет удален, пока все процессы не закроют этот файл.
cp --remove-destination
в GNU coreutils.Технически, разница между
install -c
и вcp
том, чтоinstall
устанавливает права доступа для целевого файлаrwxr-xr-x
.cp
сохраняет права доступа к исходному файлу за вычетом umask. Такое поведение по умолчанию полезно в разных ситуациях. Очевидно, что со всеми вариантами, которые предлагаютcp
иinstall
предлагают в настоящее время, функциональные возможности сошлись.В настоящее время
install
обычно используется в make-файлах,cp
везде. Это различие иногда полезно, потому что некоторые операционные системы или системы установки позволяют вам подключиться кinstall
программе для регистрации установленных пакетов. Современные системы управления пакетами делают этот вид устаревшим, но некоторые люди все еще используют его. Кроме того, возможность устанавливать права доступа к целевому файлу в одно и то же время очень удобна.источник
install
Утилита, на ее основе, является фантазиейcp
. Но поскольку инструмент специально устанавливает, он содержит несколько функций, которыхcp
нет. Мой/usr/bin/install
от GNU Coreutils не только копия, но и может изменить завивки / собственность как ARG флаги (экономияchgrp
,chown
,chmod
заклинания) вариант для полосы отладочной информации (сберегаяstrip
вызов) , а также некоторые харизмы для SELinux контекста.Это просто обеспечивает удобные действия, полезные для установки программного обеспечения. Ничто не меняет жизнь, все полезно и делает ваши сценарии чище.
источник