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.Proporciona una forma estandarizada de manipular la propiedad y los permisos de un archivo o directorio al copiar el archivo o crear el directorio, en un solo comando.
fuente
install
realiza una copia seguida de chown y chmod, todas las llamadas al sistema separadas, y no utiliza rename-in-place (al menos a partir de coreutils 8.13, la versión GNU no lo hace). Si asume que todo sucede atómicamente, puede recibir una desagradable sorpresa.Con el
install
comando podemos copiar archivos con los permisos deseadosEjemplo que se usa principalmente al configurar ldap
Esto nos ahorra hacer
chown ldap. /var/lib/ldap/DB_CONFIG
, si copió usando,cp
entonces también necesita hacerlochown
en este escenariofuente
Vea la página del manual para
install
:extracto
Otras cosas útiles como la instalación con propiedad específica, permisos y la preservación de las marcas de tiempo de los archivos originales también se pueden lograr mediante el uso de
install
.Referencias
fuente
install
, en lugar de solo preservar los permisos existentes como concp