install ofrece una serie de características además de copiar archivos a un directorio.
- la
-sopción elimina la tabla de símbolos de un ejecutable, ahorrando espacio
- La
-mopción establece los bits de permiso. Los archivos que se encuentran en el directorio del desarrollador se crearon sujetos a su umask, lo que puede impedir que otros los ejecuten. install -m 755 file1 /usr/local/bingarantiza que todos puedan ejecutar el archivo, que es probablemente lo que el desarrollador quiere para un archivo en un directorio compartido.
- Las opciones
-oy -gestablecen el propietario y el grupo. Con cp, el propietario y el grupo del archivo de destino se establecerían en el uid y gid de quien ejecutó el archivo cp, y con cp -p, el propietario y el grupo del archivo de destino serían los mismos que el archivo en el directorio de compilación, ninguno de los cuales podría ser lo que el desarrollador quiera. El wallprograma debe estar en grupo tty, el screenprograma debe estar en grupo utmp, etc.
- reduce la cantidad de comandos que deben colocarse en una receta de archivo MAKE.
install -s -m 755 -o root -g bin file1 file2 lib/* $(DESTDIR)es más sucinto que los cuatro comandos cp, strip, chmod, y chown.
La última viñeta es probable por qué installse inventó el comando y por qué muchos makefiles lo usan.
Installsin embargo, no siempre se usa. He visto cp -r lib $(DESTDIR)/libcuando hay un árbol completo lleno de cosas para copiar, y ./install.shsi el desarrollador prefiere usar un script personalizado. Muchos paquetes tienen un install.shderivado del que viene con X11, que es similar installpero admite una -topción (transformación) para cambiar el nombre de los archivos de destino de una manera específica.