install
no solo copia archivos sino que también cambia su propiedad y permisos y, opcionalmente, elimina los símbolos de depuración de los ejecutables. Combina cp
con chown
, chmod
y strip
. Es una herramienta conveniente de alto nivel que logra una secuencia común de tareas elementales.
Una ventaja de install
sobre cp
para instalar ejecutables es que si el destino ya existe, elimina el archivo de destino y crea uno nuevo. Esto elimina todas las propiedades actuales, como las listas y capacidades de control de acceso, que pueden verse como una ventaja y una desventaja. Al actualizar los ejecutables, si hay instancias en ejecución de este ejecutable, siguen ejecutándose sin verse afectados. Por el contrario, cp
actualiza el archivo en su lugar si hay uno. En la mayoría de las variantes de Unix, esto falla con el error EBUSY¹ si el objetivo es un ejecutable en ejecución; en algunos puede causar que el destino se bloquee porque carga secciones de código dinámicamente y la modificación del archivo hace que se cargue un código sin sentido.
install
es un comando BSD (agregado en 4.2BSD , es decir, a principios de la década de 1980). No ha sido adoptado por POSIX.
¹ "Archivo de texto ocupado". En este contexto, "archivo de texto" significa "archivo ejecutable binario", por razones históricas oscuras .
Gilles 'SO- deja de ser malvado'
fuente
rm
concp
. Esto significa que puede sobrescribir archivos que están en uso al desvincularlos (rm
) primero.cp
solo daría un error.