Victoralm
(usa Ubuntu)
Enviado em 15/08/2013 - 04:00h
Olá,
estou criando um script para backupear alguns arquivos. Os arquivos terão a nomenclatura no padrão nome_do_arquivo.data.tar.gz.
Como: imagens.2013-08-15.tar.gz
Questão 1: Gostaria de saber como explodir esse nome, tendo como separador os "." (pontos).
Questão 2: Como inverter o nome do arquivo e deixa-lo no padrão: gz.tar.data.nome_do_arquivo. (Essa é para fins de aprendizado msm...)
Criei uma variável que lê o conteúdo do diretório, mas esta acabou sendo uma variável única, e ñ um array... Dessa forma:
var=`ls`;
Questão 3: Como fazer para explodir os nomes, tendo como separadores os espaços, gravando direto em uma variável do tipo array !?
Solução adotada:
*listar conteúdo do diretório
Comando: var=`ls`;
Saída do "echo $var": arquivo1.data.tar.gz arquivo2.data.tar.gz arquivo3.data.tar.gz ...
Saída para "echo "${var[1]}";": retorna nada, vazio
Comando: vararr=(${var// / });
Saída para "echo "${vararr[1]}";": arquivo2.data.tar.gz
Ou ainda:
for i in "${!vararr[@]}"
do
echo "$i=>${vararr[i]}"
done
Retorna:
0=>arquivo1.data.tar.gz
1=>arquivo2.data.tar.gz
2=>arquivo3.data.tar.gz
...
Ainda, estou querendo apagar os arquivos que tenham mais de 31 dias e acabei esbarrando em alguns problemas...
Questão 4: Como ficaria um código para apagar os arquivos com mais 31 dias !?
O código abaixo resolveria a questão !?
find ./ -maxdepth 1 -type f -mtime +31 | xargs rm -rf
A intenção de apagar os arquivos com mais de 31 dias se deve ao fato de estarmos mantendo um "backup do backup" no Google Drive com o auxílio do grive. Logo, não dá pra abusar tanto assim do espaço...
Desde já agradeço muito a atenção !!