Categories: Tecnologia

Como copiar arquivos usando o comando “install” no Linux

Fatmawati Achmad Zaenuri / Shutterstock.com

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 este artigo para descobrir como trabalhar de maneira mais inteligente – não mais difícil.

Espere – não é para instalar software?

O installcomando 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 em Debian, use o apt-getcomando. Em outras distribuições Linux, use a ferramenta de gerenciamento de pacotes da sua distribuição Linux – por exemplo, dnfno Fedora ou zypperno openSUSE.

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

Resumindo,  installcombina elementos dos comandos cp( copiar ), chown( alterar o proprietário ), chmod( alterar modo ), mkdir( criar diretório ) e strip( remover símbolos ). Ele permite que você use funções de tudo isso em uma única ação.

O installcomando pode:

  • Copie arquivos como o cpcomando.
  • Escolha se deseja substituir os arquivos existentes.
  • Crie o diretório de destino se ele não existir, como mkdir.
  • Defina os sinalizadores de permissão do usuário dos arquivos, assim como o chmodcomando.
  • Defina o proprietário dos arquivos, assim como o chowncomando.
  • Remova a bagagem não essencial dos arquivos executáveis, assim como o stripcomando.

Apesar de toda essa funcionalidade, o installcomando não tem muitas opções com as quais lidar.

Quando você usaria

O installcomando provavelmente não será usado todos os dias. É útil, mas apenas para certas situações. Um cenário que installse destaca é 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. O diretório de teste pode precisar ser criado e você precisa definir as permissões e propriedade corretas para os arquivos.

Como o desenvolvimento é uma atividade iterativa, você pode acabar realizando essa sequência de ações muitas e muitas vezes. O installcomando faz todo o trabalho pesado para você. Finalmente, quando seu novo utilitário estiver pronto para ser implantado, você pode usá install-lo 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, chamado ana. Ele 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 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 install.

Até que esteja pronto para lançamento, ele será testado em um diretório chamado ~/test/ana. Os membros do geekgrupo terão permissões de leitura e execução. Outros usuários também terão permissões de leitura e execução. O installcomando usa a mesma representação numérica para permissões chmod. Nosso programador decidiu que as permissões devem ser definidas para:

  • Proprietário: Leia, escreva e execute.
  • Grupo: Ler e executar.
  • Outros: execute apenas.

Como usar o installcomando

O diretório de trabalho do nosso 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 que ana funciona com Words.db,. Portanto, os dois arquivos estão prontos para teste. Vamos dar uma olhada neles:

ls -l ana Words.db

O anautilitário que ele acabou de escrever cria anagramas a partir de uma frase fornecida na linha de comando. O teste de verificação é bastante direto.

Nosso programador invocou anacom a frase “biscoito” e tudo parece bem. Ele agora deseja copiar esses dois arquivos para o ~/test/anadiretório para ver se o novo utilitário funciona corretamente fora do ambiente de desenvolvimento. Ele emite o seguinte comando:

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

As opções usadas na linha de comando foram:

  • D : Crie diretórios, incluindo diretórios pais, se necessário.
  • v : Detalhado, liste cada diretório à medida que é feito e cada cópia de arquivo à medida que é executada.
  • t : diretório de destino.

Podemos ver que installcria o ~/testdiretório e, em seguida, cria o ~/test/ana diretório. Os arquivos são listados um por um conforme são copiados para o diretório de destino.

Listar os arquivos ~/test/ana confirma que eles foram copiados corretamente.

ls -l

A próxima etapa é testar o anautilitário chamando-o no ~/test/ana diretório.

O utilitário opera conforme o esperado, o que é ótimo. No entanto, as permissões não estão corretas. O requisito é definir que os membros do grupo geektenham permissões de leitura e execução e que outros usuários tenham apenas permissões de execução.

Podemos resolver esses dois problemas de forma bastante simples com o comando a seguir. Observe o uso de sudo para executar o comando com permissões de root. As  opções -o-ge exigem isso. Nossa senha será solicitada quando emitirmos o comando.

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

  • A -bopção (backup) cria backups dos arquivos antes que eles sejam sobrescritos.
  • A -Sopção (sufixo) define o sufixo dos arquivos de backup. Se você não fornecer um sufixo, um ~(til) será usado. Estamos pedindo installpara usar um sufixo de .bak.
  • Definimos o proprietário do arquivo para daveusar a -oopção (proprietário).
  • A -gopção (grupo) requer o nome de um grupo. Este se torna o grupo proprietário dos arquivos. O grupo que vamos usar é chamado  geek.
  • A -mopção (modo) define os modos de arquivo para os arquivos, usando a chmodsintaxe numérica 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 -vopção (detalhada). Listar os arquivos em nosso ~/test/ana diretório nos mostra os detalhes do arquivo:

ls -l

Isso confirma que todos os nossos 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 geekgrupo é o grupo proprietário dos dois arquivos.
  • Cópias de backup foram feitas de cada arquivo, chamadas ana.bak e Words.db.bak.

Tudo isso foi alcançado com o uso de um comando. Arrumado.

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

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

Listar os arquivos no diretório de destino nos mostra que o tamanho do anaarquivo foi alterado. É maior que o  ana.bakarquivo. O carimbo de data / hora ativado anatambém mudou. Essas alterações ocorrem porque a nova versão do arquivo foi copiada aqui.

ls -l

O tamanho do arquivo e o carimbo de data / hora do Words.dbarquivo não foram alterados. Nenhuma alteração foi feita no Words.db arquivo, então ele não foi copiado. Em um projeto com muitos arquivos, a -Copção (comparar) pode economizar muito tempo e agitar o disco rígido, copiando apenas os arquivos que foram alterados.

O programador testou novamente se o anautilitário continua a operar.

É hora de usar installpara copiar os arquivos para o /usr/local/bindiretório. Isso tornará o novo utilitário disponível para todos os usuários deste computador Linux. Sabemos que /usr/local/bin existe, então não precisamos criar esse diretório. Podemos usar uma versão modificada de nosso último comando.

Mudamos o diretório de destino para ser /usr/local/bin. Removemos a -Copção (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, portanto, podemos remover a -bopção (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 um teste final, vamos mudar o diretório para nosso diretório inicial e ver se podemos invocar nosso novo utilitário a partir daí.

Observe que não precisamos preceder o anacomando, o ./  que significa que ele está sendo executado /usr/local/bin. Missão cumprida.

Mencionamos que a instalação pode retirar tabelas de símbolos redundantes e outras bagagens de dentro do arquivo binário, para reduzi-lo em tamanho. Vamos fazer isso agora. Observe que o comando abaixo 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 (reduzir) com um “s” minúsculo. Adicionamos novamente a opção -b (backup) e a opção -S (sufixo), com um “S” maiúsculo

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

Listar os arquivos nos /usr/local/binpermite comparar o tamanho do anaarquivo com sua versão de backup. O anaarquivo foi reduzido a quase 60% do tamanho anterior.

ls -l / usr / local / bin

Em suma

O installcomando atende a um uso de nicho bonito. Para muitas pessoas, não será usado todos os dias, ou possivelmente de mês para mês. Apesar disso, o installcomando é 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 ganhos de eficiência, simplicidade e simplesmente menos toques no teclado.

maisroot

Recent Posts

O novo aplicativo “PC Manager” da Microsoft se parece muito com o CCleaner

Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…

1 ano ago

Como reiniciar um PS4

Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…

1 ano ago

Veja por que as reticências são tão assustadoras ao enviar mensagens de texto…

A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…

1 ano ago

O telescópio James Webb acaba de capturar os “Pilares da Criação”

A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…

1 ano ago

Você poderá baixar o Proton Drive mais cedo do que pensa

O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…

1 ano ago

Como aumentar o zoom no Photoshop

Para ver suas fotos mais de perto ou para uma edição precisa , você pode…

1 ano ago