GNU/Linux >> Tutoriales Linux >  >> Linux

¿En qué se diferencia install -c de cp?

Una diferencia importante es que cp trunca el archivo de destino y comienza a copiar datos del origen al archivo de destino.

install, por otro lado, elimina primero el archivo de destino.

Esto es significativo porque si el archivo de destino ya está en uso, podrían pasarle cosas malas a quien esté usando ese archivo en caso de que cp un nuevo archivo encima de él. p.ej. sobrescribir un ejecutable que se está ejecutando puede fallar. Truncar un archivo de datos en el que un proceso existente está ocupado leyendo/escribiendo podría causar un comportamiento bastante extraño. Si simplemente elimina el archivo de destino primero, como lo hace la instalación, las cosas continúan como de costumbre:el archivo eliminado no se elimina hasta que todos los procesos cierran ese archivo.


Técnicamente, la diferencia entre install -c y cp es que install establece los permisos del archivo de destino en rwxr-xr-x . cp conserva los permisos del archivo fuente menos el umask. Estos comportamientos predeterminados son útiles en diferentes situaciones. Obviamente, con todas las opciones que tanto cp y install oferta hoy en día, las funcionalidades han convergido.

Hoy en día, install se usa comúnmente en makefiles, cp en todos lados. Esta distinción es ocasionalmente útil porque algunos sistemas operativos o sistemas de instalación le permiten conectarse al install programa para registrar los paquetes instalados. Los sistemas modernos de gestión de paquetes hacen que este tipo de datos quede obsoleto, pero algunas personas aún lo usan. Además, la posibilidad de configurar los permisos del archivo de destino al mismo tiempo es muy conveniente.


El install utilidad, en su base, es un elegante cp . Pero como herramienta específica para realizar instalaciones, contiene algunas características que cp no. Mi /usr/bin/install de GNU coreutils no solo copia, sino que también puede cambiar permisos/propiedad como banderas arg (guardando chgrp , chown , chmod invocaciones) una opción para eliminar la información de depuración (guardando un strip invocación) y también algo de mojo para contextos SELinux.

Simplemente proporciona acciones de conveniencia útiles para las instalaciones de software. Ninguno cambia la vida, todos son útiles y hacen que sus scripts sean más limpios.


Linux
  1. Cómo instalar Fail2Ban en CentOS 7

  2. ¿Cómo catear un archivo de Awk?

  3. ¿Cómo leer una variable de un archivo?

  4. Cómo instalar g ++ en Ubuntu

  5. ¿En qué se diferencia cp -f de cp --remove-destination?

Cómo instalar Skype en Fedora 24

Cómo instalar CouchPotato en Ubuntu

Cómo instalar software desde la fuente en Linux

Cómo instalar VirtualBox en diferentes distribuciones de Linux

Cómo quitar (^M) caracteres de un archivo en Linux

Cómo instalar Monitorix en Ubuntu 16.04