Substituir arquivos durante a inicialização

1

Estou tentando sobrescrever um arquivo sempre que meu computador estiver conectado após uma reinicialização ou logout, em seguida, faça login.

  • Localização do arquivo: /user_data/somePrefs.txt
  • Localização do arquivo a ser substituído: %código%

Eu certamente posso tentar fazer um método manual de copiar e colar para substituir o arquivo, mas pode ser um incômodo fazê-lo sempre que meu computador for reinicializado / desconectado.

Existe uma maneira automatizada de fazer isso durante a inicialização?

    
por yan 09.08.2017 / 19:05

2 respostas

0

  1. Clique com o botão direito do mouse, novo documento, documento vazio. (crie-o onde quiser) . Nomeie qualquer coisa que termine com .sh (example: StartupCommands.sh)
  2. Digite #!/bin/bash na primeira linha

  3. (o bit complicado) Digite seu comando de cópia na próxima linha. Deve parecer exatamente com a linha abaixo. Não esqueça ' das citações

    cp '/path/to/user_data/somePrefs.txt' '/path/to/software_location/somePrefs.txt'
    

e o caminho tem que ser um "caminho absoluto" (a partir da raiz e até os seus arquivos).

... então, finalmente, o arquivo deve ficar assim:

#!/bin/bash
cp '/path/to/user_data/somePrefs.txt' '/path/to/software_location/somePrefs.txt'
  1. Clique com o botão direito no arquivo .sh , Propriedades, em Permissões, marque a caixa "Permitir execução do arquivo como programa"

  2. abra "Aplicativos de inicialização" (pressione o botão Iniciar e procure por ele)

  3. clique em "Adicionar"

  4. Você pode digitar o que quiser nos campos "Nome" e "Comentário"

  5. clique em "Procurar ..." e selecione seu arquivo .sh

feito. aplausos.

Se precisar de ajuda com o passo 3, diga-me em um comentário

Sugestão para o passo 3

Você pode abrir um novo terminal. Arraste e solte os arquivos somePrefs.txt (um por vez) no terminal. O que aparece no terminal é o caminho absoluto.

    
por Mina Michael 09.08.2017 / 20:50
0

Agora, este é o comando que precisa para alcançar o que você deseja:

cat /user_data/somePrefs.txt > /software_location/somePrefs.txt

Agora temos três scenarious:

  1. Inicialização, boot a.k.a:

    • neste caso, podemos usar o programa systemd para conseguir isso a cada inicialização

      1. Crie um script em qualquer local com o comando acima.
      2. Faça a permissão 755 com: chmod 755 name_of_file
      3. Crie um arquivo de serviço systemd da seguinte forma:

        [Unit]
        Description=copy script
        
        [Service]
        Type=simple
        ExecStart=/bin/bash -c "/path/to/file/copy.sh"
        
        [Install]
        WantedBy=multi-user.target
        
      4. Chame o que você puder, aqui vou chamá-lo de cop.service

      5. Coloque esse arquivo no /etc/systemd/system/

      6. Ativar com:

        • sudo systemctl enable cop
      7. Ele executará esse arquivo a cada inicialização
  2. Na reinicialização:

    • Use cron para executá-lo.

      1. Configure da seguinte forma:

        crontab -e
        @reboot /path/to/cop.sh
        
      2. E a cada reinicialização que deve ser executada

  3. No logout-login:

    • Coloque esse arquivo de comando no arquivo /home/$USER/.bashrc e ele será executado a cada logout e login
    • Torne o arquivo executável com: chmod +x /path/to/cop.sh
    • Adicionar: /path/to/cop.sh file
    • Arquivo de origem para garantir que não haja erros: source ~/.bashrc
    • Agora, sempre que você fizer logout e nas execuções de script,

Exemplo de script simples com seu comando seria:

#!/bin/bash
cat /user_data/somePrefs.txt > /software_location/somePrefs.txt

NOTA:

Você precisaria alterar os caminhos do diretório de acordo com sua própria situação.

    
por George Udosen 09.08.2017 / 20:59