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 <[email protected]>
>
>
> 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]
------------------------------------
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [email protected]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[email protected]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html