Programação BASH

Copiar lista de arquivos usando script Bash

Copiar lista de arquivos usando script Bash
Bash (Bourne Again Shell) é o tipo de shell para a execução de comandos e scripts. Bash era uma versão desenvolvida do sh shell. Bash Script é um arquivo onde vários comandos shell são programados 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: - $ USER imprimirá os nomes de usuário dos usuários de login atuais.

Se você está curioso para saber qual versão do bash shell está instalada no sistema, podemos verificá-la usando o seguinte comando.

$ bash --version

Saída da versão Bash.

Criação e execução de script Bash

Vamos começar criando um arquivo simples usando qualquer editor de sua escolha. Para mim, o editor vi é mais confortável. Para tornar o arquivo executável, precisamos adicionar shebang (!#) e localização do interpretador bash no início do script. Eu criei um texto.arquivo txt e adicioná-lo ao diretório bash_demo no meu diretório inicial 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 um exemplo de demonstração após criar um arquivo; se você não tiver, o editor irá criar um novo arquivo ao escrever e sair.

#!/ bin / bash
texto cp.txt / tmp /
echo “Arquivo copiado.”

Podemos executar o script usando ./ antes do arquivo de script, que determina o arquivo dir atual.

$ ./ bash_demo.sh

Quando executamos 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 obter todos os arquivos e diretórios de um caminho específico, usaremos o loop for no script e, em seguida, filtraremos o único arquivo usando a condição if. No exemplo abaixo, executamos o comando cp executado apenas se o iterador for um arquivo que é determinado -f flag.

#!/ bin / bash
dpath = / var / log / nginx / *
para FILE em $ dpath
Faz
se [[-f $ FILE]]
então
cp $ FILE / home / $ USER /
senão
echo “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 *.logar no caminho para que itere o único arquivo com .extensão de log apenas para loop.

#!/ bin / bash
para FILE em / var / log / nginx / *.registro
Faz
cp $ FILE / home / $ USER /
feito

Copiar todos os arquivos, incluindo o diretório

Neste exemplo, iremos copiar todos os arquivos, incluindo diretórios, recursivamente. Para isso, simplesmente precisamos adicionar o comando -R cp, onde -R determina a busca recursiva do diretório.

#!/ bin / bash
para FILE em / var / log / *
Faz
cp -R $ ARQUIVO / home / $ USUÁRIO /
feito

Copie os arquivos do caminho especificado pelo usuário

Neste exemplo, vamos copiar os arquivos do diretório especificado pelo usuário. Para fazer isso, usaremos o comando read para solicitar o caminho do usuário e, em seguida, verificar 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 o dir dentro do caminho fornecido e, novamente, filtrar os únicos arquivos usando a condição if. Se a condição corresponder, o seguinte comando cp será executado.

#!/ bin / bash
echo “Forneça um caminho para dir.”
caminho de leitura
if [[-d $ path]]
então
para FILE em $ path / *
Faz
se [[-f $ FILE]]
então
cp $ FILE / home / $ USER /
senão
echo “Não há arquivos no caminho fornecido.”
fi
feito
senão
echo “Caminho para dir é obrigatório”
fi

No meu diretório inicial, tenho os seguintes arquivos e diretório.

Saída ao fornecer o caminho para um arquivo.

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

Depois de executar o arquivo de script, podemos verificar a saída no diretório predefinido no script. No meu caso, copiei o arquivo no meu diretório inicial, e o seguinte é o resultado.

Conclusão

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

Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...
0 A.D. Tutorial
Dos muitos jogos de estratégia que existem, 0 A.D. consegue se destacar como um título abrangente e um jogo muito profundo e tático, apesar de ser de ...
Tutorial Unity3D
Introdução ao Unity 3D Unity 3D é um poderoso motor de desenvolvimento de jogos. É uma plataforma cruzada que permite criar jogos para celular, web, d...