Lista de cópias de arquivos usando scripts bash

Lista de cópias de arquivos usando scripts bash
Bash (Bourne Again Shell) é o tipo de concha que é para executar comandos e scripts. Bash era uma versão desenvolvida do shell sh. O script bash é um arquivo em que vários comandos do shell são roteirizados para executar uma tarefa específica. Neste artigo, veremos como podemos copiar vários arquivos usando um script bash. Para este artigo, estou usando o Ubuntu 20.04 para demonstrar o exemplo.

NOTA: - $ Usuário Imprimirá os nomes de usuário dos usuários de login atuais.

Se você está curioso.

$ Bash -Versão

Saída da versão Bash.

Criando e executando o script Bash

Vamos começar com a criação de um arquivo simples usando qualquer editor de sua escolha. Para mim, o editor VI é mais confortável. Para fazer o arquivo executável, precisamos adicionar shebang (!#) e localização do intérprete de bash no início do script. Eu criei um texto.Arquivo TXT e adicione -o ao Bash_Demo Dir no meu diretor de casa que contém algum texto para fins de demonstração.

$ touch bash_demo.sh
$ VI BASH_DEMO.sh

Adicione as seguintes linhas em seu editor de texto para uma demonstração de amostra depois de criar um arquivo; se não o fizer, o editor criará um novo arquivo em gravação e desistir.

#!/BIN/BASH
Texto de CP.txt /tmp /
eco “arquivo copiado.”

Podemos executar o script usando ./ Antes do arquivo de script, que determina o arquivo DIR atual.

$ ./Bash_Demo.sh

Quando executarmos o script, o seguinte erro será lançado em nosso terminal.

Execução inicial do arquivo Bash.

Quando criamos um arquivo por padrão, o usuário não tem permissão de execução para o arquivo. Para fornecer permissão de execução ao usuário, o seguinte comando deve ser executado.

$ chmod +x Bash_demo.sh

Saída após permissão concedida.

Copie apenas arquivos de um diretório específico

Para buscar todos os arquivos e dir a partir de um caminho específico, usaremos o loop no script e filtre o único arquivo usando se condição. No exemplo abaixo, executamos o comando CP apenas executado se o iterador era um arquivo que é determinado -f sinalizador.

#!/BIN/BASH
dpath =/var/log/nginx/*
para arquivo em $ dpath
fazer
Se [[-f $ FILE]]
então
CP $ arquivo/home/$ user/
outro
eco “não há arquivos no caminho fornecido.”
fi
feito

Copie todos os arquivos de extensões específicas

Neste exemplo, copiaremos todos os arquivos com o .Extensão de log. Precisamos adicionar *.faça login no caminho para que item o único arquivo com .Extensão de log apenas para loop.

#!/BIN/BASH
para arquivo in/var/log/nginx/*.registro
fazer
CP $ arquivo/home/$ user/
feito

Copie todos os arquivos, incluindo diretório

Neste exemplo, copiaremos todos os arquivos, incluindo diretórios, recursivamente. Para isso, simplesmente precisamos adicionar comando -r cp onde -r determina a busca recursivamente.

#!/BIN/BASH
para arquivo in/var/log/*
fazer
cp -r $ file/home/$ user/
feito

Copie arquivos do caminho especificado pelo usuário

Neste exemplo, copiaremos arquivos do DIR especificado pelo usuário. Para fazer isso, usaremos o comando de leitura para solicitar o caminho do usuário e verifique se o usuário fornece o caminho para dir ou não, o que é feito pelo sinalizador -d na condição. Depois de verificar o DIR, usaremos um loop for para iterar todos os arquivos e dir dentro do caminho fornecido, depois filtrar os únicos arquivos usando a condição if. Se a condição corresponder, o seguinte comando CP será executado.

#!/BIN/BASH
eco “Por favor, forneça um caminho para o diretor.”
Leia o caminho
Se [[-d $ caminho]]
então
Para arquivo em $ PATH/*
fazer
Se [[-f $ FILE]]
então
CP $ arquivo/home/$ user/
outro
eco “não há arquivos no caminho fornecido.”
fi
feito
outro
eco “caminho para dir é necessário”
fi

No meu diretor de casa, eu tenho os seguintes arquivos e dir.

Saída ao fornecer o caminho para um arquivo.

Saída ao fornecer caminho de localização de dir.

Depois de executar o arquivo de script, podemos verificar a saída no diretor predefinido no script. No meu caso, copiei o arquivo em minha casa, e o seguinte é o resultado.

Conclusão

Neste artigo, aprendemos sobre como copiar arquivos usando scripts de bash. Podemos usar muitas outras operações, como um loop, if-else, etc. O script de bash é mais eficaz ao trabalhar com vários comandos para executar tarefas específicas. Espero que você goste deste artigo sobre copiar arquivos usando um script bash.