Respuestas:
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 .
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.
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 deseados
Ejemplo que se usa principalmente al configurar ldap
install -o ldap -g ldap /etc/openldap/DB_CONFIG_EXAMPLE /var/lib/ldap/DB_CONFIG
Esto nos ahorra hacer chown ldap. /var/lib/ldap/DB_CONFIG
, si copió usando, cp
entonces también necesita hacerlo chown
en este escenario
Vea la página del manual para install
:
$ man install
extracto
SYNOPSIS
install [OPTION]... [-T] SOURCE DEST
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
install [OPTION]... -d DIRECTORY...
DESCRIPTION
This install program copies files (often just compiled) into
destination locations you choose. If you want to download and
install a ready-to-use package on a GNU/Linux system, you should instead
be using a package manager like yum(1) or apt-get(1).
In the first three forms, copy SOURCE to DEST or multiple SOURCE(s) to
the existing DIRECTORY, while setting permission modes and
owner/group. In the 4th form, create all components of the given
DIRECTORY(ies).
Mandatory arguments to long options are mandatory for short options too.
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
.
-g, --group=GROUP
set group ownership, instead of process' current group
-m, --mode=MODE
set permission mode (as in chmod), instead of rwxr-xr-x
-o, --owner=OWNER
set ownership (super-user only)
-p, --preserve-timestamps
apply access/modification times of SOURCE files to corresponding
destination files
install
, en lugar de solo preservar los permisos existentes como concp
rm
concp
. Esto significa que puede sobrescribir archivos que están en uso al desvincularlos (rm
) primero.cp
solo daría un error.