Hoje vamos falar um pouco sobre backup e sobre uma curiosidade do comando rm.
Eu precisa criar um pacote compactado com os arquivos fontes de um aplicativo da empresa onde trabalho. Mas neste pacote não poderiam ir os arquivos de trabalho do sistema como PDF, Imagens, XML e etc.
Para fazer a compactação geramente utilizo o tar pois ele é de simples entendimento e largamente utilizado por pessoas que utilizam UNIX.
A sintaxe básica é:

tar  arquivo_saida arquivo_entrada1 arquivo_entrada_n

Assim como utilizei a flag –exclude no rsync posso utilizar no tar também.
Então para resolver meu problema foi simples digitei.

tar -vczf arquivosFontes.tar.gz /home/valdinei/ --exclude /home/valdinei/userFiles

Onde as opções são definidas da seguinte forma:

-v mostrar as saidas na tela
-c criação de arquivo
-z tipo de compactação
-f arquivo

Resolvido o problema com este comando, mas fazendo os testes para descobrir como o comando funcionava foram sendo criados arquivo lixo em meu ambiente de teste. Este arquivos eram os –exclude, –exclude= e coisas do tipo pois fiz muitas tentativas 🙂

Para apagarmos apagarmos arquivos é so utilizar o comando rm <arquivo>, sendo este um arquivo com um nome normal.
Neste caso meu arquivo não tinha um nome normal.

Digite no seu console

touch --test.

Depois

 rm --test

para ver o que acontece…. nada vai dar um erro.

Tem um explicação logica para isso, quando chamamos um comando é utlizado uma nova shell para executa-la e como o sinal (–) é utlizado para a passagem de paramentros da um erro pois agora este sinal pertence ao nome do arquivo.

Sem se extender mais sobre o assunto vamos a solução:

rm -- --test

Pronto apagamos o arquivo. Porque?
Bem agora definimos que o comando vai ser executado pelo shell que estamos utilizando.

Espero ter ajudado pois isso me salvou hoje criando um arquivo limpo e deixando minha máquina sem arquivos com nomes bizarros.

Abraços
Dinei.

Tags: , , , , ,