Como copiar arquivos usando o comando “install” no Linux
install é um comando versátil de cópia de arquivos no Linux e no macOS. É perfeito para o usuário avançado em busca de eficiência. Leia este artigo para descobrir como trabalhar de forma mais inteligente, não mais difícil.
Aguarde: não é para instalar o software?
O comando install pode ter o nome mais enganoso de qualquer um dos comandos do Linux. Na verdade, ele não instala nenhum software. Se você está tentando instalar um pacote de software a partir da linha de comando no Ubuntu ou em outra distribuição baseada no Debian, use o comando apt-get. Em outras distribuições Linux, use a ferramenta de gerenciamento de pacotes da sua distribuição Linux - por exemplo, dnf no Fedora ou zypper no openSUSE.
Então, o que instalar o Do?
Em poucas palavras, a instalação combina elementos dos comandos cp (copiar), chown (alterar proprietário), chmod (modo de mudança), mkdir (criar diretório) e tira (símbolos de faixa). Ele permite usar funções de todos em uma única ação.
O comando de instalação pode:
- Copiar arquivos como o comando cp.
- Escolha se deseja sobrescrever arquivos existentes.
- Crie o diretório de destino, se ele não existir, como mkdir.
- Defina os sinalizadores de permissão de usuário dos arquivos, exatamente como o comando chmod. / li>
- Defina o proprietário dos arquivos, assim como o comando chown.
- Remova a bagagem não essencial dos arquivos executáveis, assim como o comando strip.
Apesar de toda essa funcionalidade, o comando de instalação não tem muitas opções para enfrentar.
Quando você o usaria
A instalação comando provavelmente não será usado todos os dias. É útil, mas apenas para determinadas situações. Um cenário em que a instalação se instala é o desenvolvimento de software. Digamos que você esteja programando um novo utilitário. Você precisará fazer testes fora do ambiente de desenvolvimento. Para fazer isso, você precisa copiar os novos arquivos de programa para um diretório de teste. Talvez seja necessário criar o diretório de teste e definir as permissões e a propriedade corretas para os arquivos.
Como o desenvolvimento é uma atividade iterativa, você pode acabar fazendo essa sequência de ações muitas vezes. . O comando install faz todo o trabalho pesado para você. Finalmente, quando seu novo utilitário estiver pronto para ser implantado, você poderá usar a instalação para copiá-lo com as permissões corretas para o local de trabalho final.
Um exemplo
Um programador está trabalhando apenas um novo utilitário, chamado ana. Consiste em um arquivo binário executável e um banco de dados. Após o teste, ele 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 os caminhos de diretório em nosso exemplo pelos arquivos e caminhos que você está usando em seu computador quando você usa a instalação.
Até que esteja pronto para ser lançado, ele será testado em um diretório chamado ~ / test / ana. Os membros do grupo geek terão permissões de leitura e execução. Outros usuários terão permissões de leitura e execução também. O comando install usa a mesma representação numérica para permissões que o chmod faz. Nosso programador decidiu que as permissões devem ser definidas para:
- Proprietário: leia, escreva e execute.
- Grupo: Leia e execute.
- Outros: Execute somente.
Como usar o comando de instalação
Nosso diretório de trabalho do programador fictício é ~ / work. Ele escreveu o programa, compilou-o e produziu um binário chamado ana. Ele já criou o arquivo de banco de dados com o qual ana trabalha, Words.db. Portanto, ambos os arquivos estão prontos para teste. Vamos dar uma olhada neles:
ls -l ana Words.db
O utilitário ana que ele acabou de criar cria anagramas a partir de uma frase fornecida na linha de comando. O teste de verificação é bastante simples.
Nosso programador invocou ana com a frase “biscoito” e tudo parece bem. Ele agora quer copiar esses dois arquivos para o diretório ~ / test / ana para ver se o novo utilitário funciona corretamente fora do ambiente de desenvolvimento. Ele emite o seguinte comando:
instale -D -v ana Palavras.db -t ~ / teste / ana
IMAGEM_4
As opções usadas na linha de comando:
- D: Crie diretórios, incluindo diretórios-pai, se necessário.
- v: Verbose, liste cada diretório como ele é feito e cada cópia de arquivo como é realizado.
- t: Diretório de destino.
Podemos ver que a instalação cria o diretório ~ / test e cria o diretório ~ / test / ana . Os arquivos são listados um a um quando são copiados para o diretório de destino.
Listar os arquivos em ~ / test / ana confirma que eles foram copiados corretamente.
ls -l
IMAGEM_5
O passo é testar o utilitário ana chamando-o no diretório ~ / test / ana.
O utilitário opera como esperado, o que é ótimo. No entanto, as permissões não estão corretas. O requisito é definir membros do grupo geek para ter permissões de leitura e execução, e para outros usuários terem apenas a execução.
Podemos abordar ambos os problemas com o seguinte comando. Observe o uso do sudo para executar o comando com permissões de root. O -o e -g e as opções exigem isso. Ser-nos-á pedida a nossa senha quando emitirmos o comando.
sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~ / test / ana
IMAGEM_7
- A opção -b (backup) cria backups dos arquivos antes de serem sobrescritos.
- O -S (sufixo) opção define o sufixo para os arquivos de backup. Se você não fornecer um sufixo, será usado um ~ (til). Pedimos que o install use um sufixo .bak.
- Definimos que o proprietário do arquivo seja dave usando a opção -o (owner).
- O -g ( grupo) requer o nome de um grupo. Isso se torna o grupo de proprietários dos arquivos. O grupo que vamos usar é chamado de geek.
- A opção -m (mode) define os modos de arquivo para os arquivos, usando a sintaxe numérica chmod padrão.
Não precisamos mais usar a opção -D (criar diretórios), porque sabemos que o diretório de teste já existe. Também omitimos a opção -v (verbose). Listar os arquivos em nosso diretório ~ / test / ana nos mostra os detalhes do arquivo:
ls -l
IMAGEM_8
Isso confirma que todos os nossos os requisitos foram atendidos.
- Os arquivos foram copiados para o diretório de teste.
- As permissões foram definidas corretamente.
- dave é o proprietário dos arquivos.
- O grupo geek é o grupo de proprietários dos dois arquivos.
- Cópias de backup foram feitas de cada arquivo, chamadas ana.bak e Words.db.bak .
Tudo o que foi conseguido através do uso de um comando. Neat.
Nosso programador faz algumas mudanças finais no utilitário e recompila. Os arquivos que foram alterados precisam ser copiados para o diretório ~ / test / ana a partir do diretório ~ / work. Podemos fazer isso usando a opção -C (compare). Se o arquivo de origem e o arquivo de destino forem os mesmos, o arquivo de origem não será copiado.
instalação do sudo -C -b -S .bak -o dave -g geek -m 751 ana Palavras. db -t ~ / teste / ana
IMAGEM_9
Listar os arquivos no diretório de destino nos mostra que o tamanho do arquivo ana foi alterado. É maior que o arquivo ana.bak. O timestamp em ana também mudou. Essas alterações ocorrem porque a nova versão do arquivo foi copiada aqui.
ls -l
IMAGEM_10
O tamanho do arquivo e o registro de data e hora da O arquivo Words.db não foi alterado. Nenhuma alteração foi feita no arquivo Words.db, portanto, ele não foi copiado. Em um projeto com muitos arquivos, a opção -C (compare) pode economizar muito tempo e a rotatividade do disco rígido, copiando apenas os arquivos que foram alterados.
O programador testou novamente o utilitário ana continua a operar.
Chegou a hora de usar a instalação para copiar os arquivos para o diretório / usr / local / bin. Isso disponibilizará o novo utilitário para todos os usuários desse computador Linux. Sabemos que / usr / local / bin existe, por isso não precisamos criar esse diretório. Podemos usar uma versão modificada do nosso último comando.
Alteramos o diretório de destino para / usr / local / bin. Removemos a opção -C (comparar) porque ainda não há cópias desses arquivos no diretório de destino, portanto, não há nada para comparar. Da mesma forma, não há nada para fazer backup, então podemos remover a opção -b (backup) e a opção -S (sufixo).
sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin
Podemos listar que os arquivos chegaram em / usr / local / bin:
ls -l
E como teste final, vamos mudar o diretório para o nosso diretório home e ver se podemos invocar nosso novo utilitário a partir daí.
Perceba que não precisamos prefixar o comando ana com ./, o que significa que ele está sendo executado em / usr / local / bin. Missão cumprida.
Mencionamos que a instalação pode remover tabelas de símbolos redundantes e outras bagagens do arquivo binário, para reduzi-las em tamanho. Vamos fazer isso agora. Observe que o comando abaixo não inclui Words.db. Isso ocorre porque o Words.db é um arquivo de banco de dados, não um executável binário. Para copiar e reduzir o arquivo binário, podemos usar o seguinte comando. Adicionamos a opção -s (shrink) com letras minúsculas "s". Adicionamos novamente a opção -b (backup) e a opção -S (sufixo), com letra maiúscula "S".
sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin
IMAGEM_14
Listagem Os arquivos em / usr / local / bin nos permitem comparar o tamanho do arquivo ana com sua versão de backup. O arquivo ana foi reduzido para quase 60% de seu tamanho anterior.
ls -l /usr/local/bin
IMAGEM_15
Resumo
O comando de instalação atende a um nicho de uso bonito. Para muitas pessoas, ele não será usado todos os dias, ou possivelmente de mês a mês. Apesar disso, o comando de instalação é uma boa ferramenta para se familiarizar e ter em seu arsenal de truques. Para as ocasiões em que você precisa, ele recompensa sua curva de aprendizado com melhorias na eficiência, simplicidade e menos pressionamentos de teclas.
Via: How to Geek
Nenhum comentário