0

Shell Script - Manipulando Arquivos

B
Breno Guimarães

O Shell Script é uma linguagem de script embutida no terminal dos sistemas operacionais da família Linux. Esta linguagem te possibilita executar comandos diretamente ao sistema operacional. O Shell Script está presente em todos os sistemas Unix suas variantes como FreeBSD, OpenBSD, Solaris, NetBSD, Irix, entre outros.

Abaixo teremos um guia de como usar os comando mais usados para manipulação de arquivos de diretórios fazendo o uso do shell script, espero que gostem :)


Mover ou renomear arquivos


Para mover arquivos para um diretório ou renomear um determinado arquivo basta usar:

# mv -i <nome-do-arquivo> <diretório-destino>


No comando abaixo temos o uso da opção -n que serve para o caso haja um arquivo com o mesmo nome no diretório destino, o comando mv não substituí-lo.


# mv -n <nome-do-arquivo> <diretório-destino>


O caso da opção -b é justamente o efeito contrario do comando anterior, ela faz com que o comando mv substitua pelo arquivo enviado mesmo que tenham o mesmo nome.


# mv -n <nome-do-arquivo> <diretório-destino>


A opção -u substitui se o arquivo for mais antigo ou não existir


# mv -u <nome-do-arquivo> <diretório-destino>


Copiar arquivos 


Copia um arquivo para um diretório.

Uso:

# cp -i <nome-do-arquivo> <diretório-destino>


Há a possibilidade de usar a opção -v para que o terminal te retorne o que fez de forma detalhada.

# cp -i -v <nome-do-arquivo> <diretório-destino>

Retorna: 'cp.txt' -> 'curso-shell/cp.txt'


Copiando diretórios inteiros

Uso:

# cp -v -r <nome-do-diretório> <diretório-destino>


Obs: A opção -v é recomendada nesse caso, pois ela mostra exatamente o que está sendo movido para o diretório destino.


Com a opção -u, o usuário pode copiar quando o arquivo movido for mais novo do que o arquivo de origem ou não existir.


# cp -u <nome-do-arquivo> <diretório-destino>


Cria diretório

Uso:

# mkdir <nome-da-pasta>


Remove arquivo ou diretório vazio

Uso:

# rm <nome-do-arquivo>


Há a opção -f para que o comando seja executado sem que o terminal te faça perguntas.


Remove diretório com arquivos

# rm -rf <nome-do-diretório>


Procura dentro de um diretório


# find <diretório-para-busca> <tipo-a-ser-procurado> <nome> <o-que-tem-no-nome>


pra exemplificar um comando seria mais ou menos assim:


find ./ -type f -name "a"


O comando acima procura no diretório "./" por um, "-type f", nesse caso o "-type" é a opção e o "f" representa o tipo arquivo e a opção a frente, "-name 'a' ", especifica que é um arquivo com a letra "a" em seu nome.



Dentro da opção -name, é possivel que se use o caracter * dentro da descrição do que será procurado


exemplo: find ./ -type f -name "meu*" 


Dessa forma ele retorna tudo que contenha a palavra "meu" e qualquer outra coisa depois do *, bem parecido com o % na linguagem SQL.


Compara dois arquivos


# diff file.txt file2.txt


o comando acima retorna a diferença entre dois arquivos, caso não haja diferença ele não retorna nada. Bem simples né? :)


Retorna todas as variáveis de ambiente do sistema

Uso:

# env


para criar uma nova variável de ambiente que se refere a um diretório siga os passos:


1. mkdir meu_diretório


2. dir=meu_diretório


3. echo $dir (deve retornar "meu_diretório")


4. export dir


Dessa forma quando usarmos o o comando env novamente devemos ver a variável meu_diretório na lista de variáveis de ambiente.

0
0

Comentários (0)

Desenvolvedor Backend

Brasil