Linux / Comando install: copiar archivos y establecer permisos y propietario
install es un comando que copia archivos mientras realiza simultáneamente la gestión de permisos, propietario y grupo, marcas de tiempo y la creación del directorio de destino. Es una herramienta de GNU Coreutils adecuada para colocar resultados de compilación en rutas del sistema definidas, no para programas de instalación de paquetes.
En este artículo se explican la instalación de archivos ejecutables y de configuración, la creación de directorios con -d, la asignación de permisos y propiedad, la opción de eliminar símbolos de depuración y la diferencia con cp.
¿Qué es el comando install?
install copia el origen al destino y luego aplica los modos y atributos de archivo especificados. El modo de creación predeterminado generalmente es 0755, por lo que los archivos que no necesiten permisos de ejecución, como los archivos de configuración, deben especificarse con -m. Tiene un propósito diferente al de apt o dnf, que resuelven dependencias de software.
Sintaxis básica
install [OPCIONES] ORIGEN DESTINO
install [OPCIONES] ORIGEN... DIRECTORIO
install -d [OPCIONES] DIRECTORIO...
Los ejemplos son independientes y requieren archivos de origen existentes. Prepare copias de prueba antes de usar rutas del sistema y compruebe la implementación con install --version, install --help y man install: este artículo describe GNU install y otras implementaciones pueden diferir. Use comillas para rutas con espacios y -- antes de operandos que empiecen por guion.
Uso básico del comando install
Instalación de archivos ejecutables
Copia los archivos ejecutables a la ruta del sistema mientras se especifica el modo. Si se necesitan permisos de escritura en el directorio del sistema, incluya sudo en el comando.
sudo install -m 0755 mytool /usr/local/bin/mytool
Instalación de archivos de configuración
El siguiente ejemplo requiere que exista /etc/mytool. Cree y revise primero ese directorio con install -d o use -D si necesita crear sus padres. El modo 0644 permite lectura a otros usuarios; para un archivo con secretos, elija una política más restrictiva, como 0600 cuando solo deba leerlo su propietario. Revise y respalde cualquier destino existente antes de reemplazarlo.
sudo install -m 0644 mytool.conf /etc/mytool/mytool.conf
Crear directorio de destino
-d crea directorios y puede aplicar modo, propietario y grupo a los directorios indicados. La cuenta y el grupo myapp del ejemplo deben existir. En GNU, los padres que sea necesario crear se generan con 0755, independientemente de -m y de la máscara umask; revise por separado la política de esos padres. Una ruta ya existente también puede ver modificados sus atributos al ejecutar install -d sobre ella.
sudo install -d -m 0750 -o myapp -g myapp /var/lib/myapp
Verificar el modo después de la instalación
install realiza la copia de archivos y la asignación de permisos de una vez, pero generalmente no muestra un mensaje de éxito.
printf '#!/bin/sh\n' > demo-tool
install -m 755 demo-tool demo-tool-installed
stat -c '%a %n' demo-tool-installed
Ejemplo de salida:
755 demo-tool-installed
Este resultado solo verifica el modo de permisos del archivo objetivo. Verifique por separado si el script se ejecuta correctamente y si la ubicación de instalación coincide con la ruta del servicio.
Opciones principales
| Opciones | Descripción |
|---|---|
-m MODE |
Especifique el modo de permisos para los archivos o directorios a instalar. |
-o OWNER |
Especifique el usuario propietario. Por lo general, se requieren permisos adecuados. |
-g GROUP |
Especifica el grupo propietario. |
-d, --directory |
Crea el directorio y las rutas principales necesarias. |
-D |
Después de crear todos los directorios principales del último argumento, instala el archivo. |
-t DIR |
Especifica el directorio de destino como una opción. |
-p, --preserve-timestamps |
Aplica la hora de acceso y modificación del archivo original. |
-s, --strip |
Intenta eliminar la tabla de símbolos durante el proceso de instalación. |
-C, --compare |
Evita cambios innecesarios en archivos si el contenido y algunos atributos son iguales. |
Las opciones largas facilitan entender su significado y también ayudan a revisar scripts. Sin embargo, en scripts donde la portabilidad es importante, primero verifique si el sistema objetivo soporta esas opciones de extensión GNU.
Ejemplos de uso práctico
Instalar el archivo junto con la ruta principal.
-D crea los directorios padre que falten y después copia el archivo al destino. Para establecer una política específica en el directorio, use antes install -d y compruebe sus atributos. Copiar un archivo de unidad de systemd no activa por sí solo el servicio: su validación, recarga y arranque son pasos distintos. La opción -s de la tabla utiliza strip y solo debe aplicarse a binarios compatibles que lo requieran, no a scripts o archivos de configuración.
sudo install -D -m 0644 myapp.service /etc/systemd/system/myapp.service
Instalar varios archivos en un directorio
Si se especifica el directorio de destino al principio con -t, es fácil configurar dinámicamente la lista de archivos.
sudo install -m 0644 -t /usr/local/share/myapp templates/*.html
Verificar el resultado de la instalación
Compruebe que los archivos estén en la ruta correcta y que los permisos y la propiedad sean los esperados. Si es un ejecutable, también debe verificar las bibliotecas y la arquitectura necesarias en el sistema de destino.
stat -c '%A %U:%G %n' /usr/local/bin/mytool
file /usr/local/bin/mytool
Comparación de comandos relacionados con install
| Comando / método | Rol principal | Situaciones adecuadas |
|---|---|---|
install |
Copiar y establecer permisos y propiedad | Colocar los productos de compilación y los archivos de configuración |
cp |
Copia de archivos común | Al gestionar la configuración de atributos como un paso separado |
mkdir |
Creación de directorios normales | Al crear la estructura del directorio de trabajo |
apt·dnf |
Gestión de dependencias de paquetes y bases de datos | Al instalar o actualizar paquetes de distribución |
Precauciones al usar
No sustituye al gestor de paquetes
install es una herramienta de distribución de archivos y no maneja dependencias, registros de eliminación, actualizaciones ni verificación de integridad. Si el software se proporciona como un paquete de distribución, primero consulte al gestor de paquetes.
No confiar únicamente en el modo predeterminado
Especifique -m para que los archivos de configuración y las claves secretas no tengan permisos de ejecución o lectura excesivos.
Defina la política para sobrescribir archivos existentes
Si reemplaza directamente los archivos de configuración en el entorno de producción, podrían ocurrir fallas en el servicio o pérdida de cambios de los usuarios. Prepare procedimientos de respaldo, comparación, cambio atómico y reversión.
FAQ
¿El comando install instala paquetes de programas?
No. Es una herramienta que copia archivos a la ruta especificada y establece sus propiedades. No gestiona dependencias de paquetes.
¿Por qué usar install en lugar de cp?
Porque con una sola orden se puede especificar la copia junto con el modo de archivo, dueño y grupo, y la creación del directorio de destino, dejando claros los scripts de compilación y despliegue.
¿Se pueden crear solo directorios?
Use install -d DIRECTORIO. También se pueden especificar -m, -o, -g.
¿Cómo puedo mantener la marca de tiempo original?
Use -p o --preserve-timestamps.
Para comparar otras herramientas, consulte la Lista de comandos de uso frecuente en Linux. Para consultar las reglas y opciones, use Documentación oficial de GNU Coreutils install y Manual oficial de GNU Coreutils.




