shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Compactar arquivos antigos


From: Julio C. Neves
Subject: Re: [shell-script] Compactar arquivos antigos
Date: Thu, 19 Nov 2009 12:13:51 -0200

Fala Cesar (é o Cesar Vianna meu amigo?),
Alguns comentários a fazer:
- A opção -I do xargs serve para vc especificar o delimitador, só que as
chaves ({}) são o padrão, então é melhor vc usar a opção -i (minúsculo) e
não especificar nada;
- Só que a função do xargs é pegar o máximo possível de cada vez do que vem
da entrada primária e botar atrás (com todo respeito) do cmd que ele está
executando, porém qdo vc usa a opção -i (ou a -I), ele tratará um-a-um os
arquivos recebidos da entrada primária.

O seu problema é causado por este último parágrafo. No duro ele está
compactando os arquivos, um por um, e só restando na saída o último.

Aí ficam 2 dúvidas:
1. Como resolver este problema?
Simples, use o xargs da forma para a qual ele foi otimizado, isto é, faça:
find -mtime +365|xargs tar --append --file=teste.tar.gz
2. Ué, então pra que serve o -i?
Para qdo vc não deseja botar o conteúdo da entrada primária atrás do cmd,
mas sim botar no meio (mais uma vez com todo respeito) do cmd. P.ex. digamos
que eu queira mover os mesmos arquivo descoberto pelo find acima para um
diretório chamado velhos. Eu faria:
find -mtime +365|xargs -i mv {} velhos

O xargs é extremamente poderoso e
aqui<https://wiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarBirinaite>vc
encontrará uma boa explicação sobre este cmd, em português e cheia de
exemplos. Gaste uns 20 minutos lendo e testando, vale a pena.

Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- Em SP ligue (11) 2125-4747 Curso de 07 a 11/12;
- Em DF ligue (61) 3223-3000 Curso de zenity 09-10/01;
- No RJ ligue (21) 2561-0867. Curso nos dias 5,6,12,13/12;
- Turmas fechadas em outras cidades ligue (21) 8112-9988.


2009/11/19 César Vianna <address@hidden>

>
>
> Estou tentando compactar arquivos com mais de um ano
>
> find -mtime +365|xargs -I '{}' tar --append --file=teste.tar.gz '{}'
>
> Mas, é gerado o erro abaixo
>
> tar: Impossível atualizar arquivos-tar compactados
> tar: Erro não é recuperável: saindo agora
>
> Se eu uso
>
> find -mtime +365|xargs -I '{}' tar -czvf teste.tar.gz '{}'
>
> O tar vai substituindo o arquivo e no final tenho apenas o último arquivo
> encontrado pelo find.
>
> Alguma dica?
>
> --
> César Vianna
> -------------------
> Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
> unidades; os agenciamentos móveis aos sistemas.
> Gilles Deleuze & Felix Guattari
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]