install
не только копирует файлы, но также меняет владельца и права доступа, а также удаляет символы отладки из исполняемых файлов. Это сочетается cp
с chown
, chmod
и strip
. Это удобный инструмент более высокого уровня, который выполняет общую последовательность элементарных задач.
Преимущество install
перед cp
установкой исполняемых файлов заключается в том, что если цель уже существует, она удаляет целевой файл и создает новый. Это избавляет от любых текущих свойств, таких как списки контроля доступа и возможности, которые можно рассматривать как как положительные, так и отрицательные стороны. При обновлении исполняемых файлов, если есть запущенные экземпляры этого исполняемого файла, они продолжают работать без изменений. Напротив, cp
обновляет файл на месте, если он есть. В большинстве вариантов Unix это происходит с ошибкой EBUSY¹, если целью является исполняемый файл; в некоторых случаях это может привести к сбою цели, поскольку он динамически загружает фрагменты кода, а изменение файла приводит к загрузке бессмысленного кода.
install
команда BSD (добавлена в 4.2BSD , т.е. в начале 1980-х) Это не было принято POSIX.
¹ «Текстовый файл занят». В этом контексте «текстовый файл» означает «двоичный исполняемый файл» по неясным историческим причинам .
rm
сcp
. Это означает, что он может перезаписывать используемые файлы, сначала отсоединив их (rm
).cp
один даст ошибку.