install
não apenas copia arquivos, mas também altera sua propriedade e permissões e, opcionalmente, remove os símbolos de depuração dos executáveis. Ele combina cp
com chown
, chmod
e strip
. É uma ferramenta conveniente de alto nível para realizar uma sequência comum de tarefas elementares.
Uma vantagem de install
over cp
para instalar executáveis é que, se o destino já existir, ele remove o arquivo de destino e cria um novo. Isso elimina quaisquer propriedades atuais, como listas de controle de acesso e capacidades, que podem ser vistas como vantagens e desvantagens. Ao atualizar executáveis, se houver instâncias em execução desse executável, elas não serão afetadas. Por outro lado, cp
atualiza o arquivo se houver um. Na maioria das variantes Unix, isso falha com o erro EBUSY¹ se o destino for um executável em execução; em alguns, isso pode causar falha no destino, pois ele carrega seções de código dinamicamente e modifica o arquivo, fazendo com que o código sem sentido seja carregado.
install
é um comando BSD (adicionado em 4.2BSD , ou seja, no início dos anos 80). Não foi adotado pelo POSIX.
¹ “Arquivo de texto ocupado”. Neste contexto, "arquivo de texto" significa "arquivo executável binário", para razões históricas obscuras .