Como copiar arquivos usando o comando “instalar” en Linux

Conteúdo

Bash arte conceitual em um desktop Ubuntu Linux

install é um comando de cópia de arquivo versátil no Linux e macOS. É perfeito para o usuário avançado que busca eficiência. Leia esta postagem para descobrir como trabalhar de maneira mais inteligente, não mais difícil.

Esperar, Não instalar software?

a install comando pode ter o nome mais enganador de qualquer comando do Linux. Na realidade, não instala nenhum software. Se você está tentando instalar um pacote de software da linha de comando no Ubuntu ou outra distribuição baseada em Debian, usar el apt-get comando. Em outras distribuições Linux, use a ferramenta de gerenciamento de pacotes de sua distribuição Linux, como um exemplo, dnf no Fedora ou zypper e openSUSE.

Então, O que a instalação faz?

Em uma palavra install combina itens do cp (cópia de), chown (Mudança de dono), chmod (modo de mudança), mkdir (fazer diretório), e strip (tira símbolos) comandos. Ele permite que você use as funções de todos eles em uma única ação.

a install comando pode:

  • Copie arquivos como o cp comando.
  • Escolha se deseja sobrescrever os arquivos existentes.
  • Crie o diretório de destino se ele não existir, O que mkdir.
  • Definir sinalizadores de permissão do usuário para arquivos, da mesma forma que o chmod comando.
  • Defina o proprietário dos arquivos, da mesma forma que o chown comando.
  • Remova a bagagem não essencial dos arquivos executáveis, da mesma forma que o strip comando.

Apesar de toda essa funcionalidade, a install o comando não tem muito Muitas opções lidar com.

instale a página do manual

Quando você usaria

a install O comando provavelmente não será usado todos os dias. É útil, mas apenas para certas situações. Um estágio onde install entra em jogo é o desenvolvimento de software. Digamos que você esteja programando um novo utilitário. Você precisará testar fora do ambiente de desenvolvimento. Fazer isso, você precisa copiar os novos arquivos de programa para um diretório de teste. Pode ser necessário criar o diretório de teste e determinar as permissões e propriedade corretas para os arquivos.

Porque o desenvolvimento é uma atividade iterativa, você pode acabar fazendo essa sequência de ações, muitos, usualmente. a install O comando faz todo o trabalho pesado para você. Em resumo, quando seu novo utilitário estiver pronto para implantar, você pode usar install para copiá-lo com as permissões corretas para seu local de trabalho final.

Um exemplo

Um programador está trabalhando em um novo utilitário, ligar ana. É um arquivo binário executável e um banco de dados. Depois do teste, deve ser copiado para /usr/local/bin para torná-lo disponível para todos os usuários do sistema Linux. Você precisará substituir os nomes de arquivo e caminhos de diretório em nosso exemplo pelos arquivos e caminhos que está usando em seu computador ao usar install.

Até que você esteja pronto para lançar, será testado em um diretório chamado ~/test/ana. Os membros da geek o grupo terá permissões de leitura e execução. Outros usuários também terão permissões de leitura e execução. a install O comando usa a mesma representação numérica para permissões como chmod faz. Nosso programador decidiu que as permissões devem ser definidas para:

  • Proprietário: Leitura, escrever e executar.
  • Grupo: Leia e execute.
  • Outros: Apenas correr.

Como usar o install Comando

O diretório de trabalho do nosso programador fictício é ~/work. Escreveu o programa, compilou e produziu um binário chamado ana. Ele já criou o arquivo de banco de dados que ana Funciona com, Words.db. Então ambos os arquivos estão prontos para teste. Vamos dar uma olhada neles:

ls -l ana Words.db

a ana O utilitário que você acabou de escrever cria anagramas a partir de uma frase fornecida na linha de comando. Os testes de verificação são bastante simples.

teste o utilitário ana no diretório de trabalho

Nosso programador invocou ana com a frase "cookie" e tudo parece bem. Agora você deseja copiar esses dois arquivos para o ~/test/ana diretório para ver se o novo utilitário funciona corretamente fora do ambiente de desenvolvimento. Emita o seguinte comando:

install -D -v ana Words.db -t ~/test/ana

Instale o comando em / teste / Anna

As alternativas usadas na linha de comando foram:

  • D: criar diretórios, incluindo diretórios pai, Sim é necessário.
  • v: Detalhado, liste cada diretório à medida que é criado e cada cópia de arquivo à medida que é feita.
  • t: diretório de destino.

nós podemos ver isso install criar o ~/test diretório, e depois crie o ~/test/ana diretório. Os arquivos são listados um a um à medida que são copiados para o diretório de destino.

Lista de arquivos em ~/test/ana confirme se eles foram copiados corretamente.

ls -l

está no diretório / teste / Anna

A próxima etapa é testar o ana utilitário, invocando-o no ~/test/ana diretório.

teste o utilitário ana no diretório / teste / Anna

O utilitário funciona conforme o esperado, o que é ótimo. Apesar disto, as permissões não estão corretas. O requisito é determinar os membros do grupo geek ter permissões de leitura e execução, e que outros usuários acabaram de executar.

Podemos resolver ambos os problemas de forma bastante simples com o seguinte comando. Observe o uso de sudo para executar o comando com permissões de root. a -o e -g e as alternativas exigem isso. Seremos solicitadas a nossa senha quando emitimos o comando.

sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

comando de instalação com opções de backup e configurações de permissão

  • a -b Opção (copia de segurança) crie cópias de backup de arquivos antes que eles sejam sobrescritos.
  • a -S Opção (sufixo) definir sufixo para arquivos de backup. Se você não fornecer um sufixo para ~ (til) se utiliza. Estamos perguntando install use um sufixo de .bak.
  • Definimos o proprietário do arquivo como dave usando o -o (proprietário) opção.
  • a -g Opção (grupo) preciso do nome de um grupo. Este se torna o grupo que possui os arquivos. O grupo que vamos usar é chamado geek.
  • a -m Opção (caminho) definir modos de arquivo para arquivos, usando o padrão chmod sintaxe numérica.

Não precisamos mais usar o -D (criar diretórios), porque sabemos que o diretório de teste já existe. Também omitimos o -v opção (detalhado). Listando os arquivos em nosso ~/test/ana diretório nos mostra os detalhes do arquivo:

ls -l

está no diretório / teste / Anna

Isso confirma que todos os nossos requisitos foram atendidos..

  • Os arquivos foram copiados para o diretório de teste.
  • As permissões foram configuradas corretamente.
  • dave é o dono dos arquivos.
  • a geek grupo é o grupo que possui os dois arquivos.
  • Todos os arquivos foram copiados, chamado ana.bak e Words.db.bak.

Tudo isso foi conseguido através do uso de um comando. Limpo.

Nosso programador faz algumas alterações finais no utilitário e recompila. Os arquivos que foram alterados devem ser copiados para o ~/test/ana diretório de ~/work diretório. Podemos fazer isso usando o -C (comparar) opção. Se o arquivo de origem e o arquivo de destino forem iguais, o arquivo de origem não é copiado.

sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

comando de instalação com a opção -C compare

Listar os arquivos no diretório de destino nos mostra que o tamanho do arquivo do ana o arquivo mudou. É maior que ele ana.bakprocedimentos. O carimbo de data / hora em ana também mudou. Essas mudanças são devido à nova versão do arquivo que está sendo copiado aqui.

ls -l

ls en / teste / ana con test for ana utility

O tamanho do arquivo e o carimbo de data / hora do Words.db arquivo não mudou. Nenhuma mudança foi feita no Words.db Arquivo, então não foi copiado. Em um projeto com muitos arquivos, -C Opção (comparar) pode economizar muito tempo e perda de tempo do disco rígido, ao copiar apenas arquivos que foram modificados.

O programador testou novamente que o ana utilitário ainda funciona.

Hora de usar install copiar arquivos para /usr/local/bin diretório. Isso tornará o novo utilitário disponível para todos os usuários deste computador Linux. Nós sabemos /usr/local/bin existe, então não precisamos criar esse diretório. Podemos usar uma versão modificada do nosso último comando.

Mudamos o diretório de destino para ser /usr/local/bin. Nós removemos o -C (comparar) porque ainda não há cópias desses arquivos no diretório de destino, então não há nada para comparar com. Da mesma forma, não há nada para fazer backup, para que possamos remover o -b (copia de segurança) e a -S (sufixo) opção.

sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin

instale copiando os arquivos para / usr / local / bin

Podemos listar quais arquivos chegaram /usr/local/bin:

ls -l

ls de / usr / local / bin

E como teste final, vamos mudar o diretório para nosso diretório inicial e ver se podemos invocar nosso novo utilitário de lá.

teste de utilidade ana

Observe que você não precisa preceder o ana comando com ./ o que significa que está fugindo de /usr/local/bin. Missão cumprida.

Mencionamos que a instalação pode remover tabelas de símbolos redundantes e outras bagagens dentro do arquivo binário., para reduzir seu tamanho. vamos fazer agora. Observe que o comando a seguir não inclui Words.db. Isso ocorre porque Words.db é um arquivo de banco de dados, não é um executável binário. Para copiar e reduzir o arquivo binário ana podemos usar o seguinte comando. Adicionamos a opção -s (psiquiatra) com uma “s” minúsculas. Nós adicionamos novamente a opção -b (copia de segurança) e a opção -S (sufixo), com uma “S” letra maiúscula

sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t / usr / local / bin

opção de instalação com opção -s strip

Lista de arquivos em /usr/local/bin nos permite comparar o tamanho do ana arquivo com sua versão de backup. a ana O arquivo foi reduzido a quase o 60% de seu tamanho anterior.

ls -l / usr / local / bin

está no diretório de trabalho

Em resumo

La la install O comando é adaptado para um uso muito específico. Para muitas pessoas, não será usado dia após dia, ou possivelmente mês a mês. Apesar disso, a install O comando é uma boa ferramenta para se familiarizar e ter em seu arsenal de truques. Para aquelas ocasiões em que você precisa, recompensa sua curva de aprendizado com melhorias de eficiência, simplicidade e simplesmente menos toques no teclado.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.