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

Re: find




On Fri, 8 Feb 2002, Joel Franco wrote:

> On Fri, Feb 08, 2002 at 05:17:41PM -0200, Antonio Alberto Lobato wrote:
> > On Fri, 8 Feb 2002, Joel Franco wrote:
> > 
> > > On Fri, Feb 08, 2002 at 01:31:05AM -0200, Antonio Alberto Lobato wrote:
> > > > 
> > > >
> > > > Oi, debiers.
> > > > 
> > > > Na linha de comando abaixo, como fazer o find zerar os arquivos (apagar
> > > > o conteúdo), e não criar um arquivo de nome {} ? O man ensina a usar a
> > > > opção -exec mas não detalha a esse ponto. Já tentei usar backslash,
> > > > quotes, double quotes em alguns pontos do comando e nada.
> > > > 
> > > > $ find -type f -name algo -exec echo -n > {} \;
> > > 
> > > $ for i in `find -type f -name algo`; do
> > > 	rm $i
> > > 	touch $i
> > > done
> > > 
> > > teoricamente isso funcionaria, nao (fixme) ?
> > > 
> > 
> > Não dá pra usar isso porque ao criar arquivos novos com touch, você não
> > vai manter os devidos donos/grupos/permissões dos arquivos de log.
> > 
> > A idéia de usar o loop "for" está certa, é assim que eu normamente apago
> > meus logs, mas com "echo -n >", e não "rm" e "touch".
> > 
> > Mas na verdade, perguntei sobre o find porquê quero aprender
> > especificamente sobre ele. Em essência, minha pergunta é: 
> > 
> > 	Como usar redirecionamento no espaço entre "-exec" e "\;" de forma
> > 	que o find continue expandindo o "{}" para o nome do arquivo que está
> > 	sendo processado ?
> 
> Não tem que colocar \ antes dos {}.. do tipo \{ e \}
> 
> 

Não. Apesar do man falar pra colocar e tal, não é necessário. Porquê pelo
menos a bash interpreta {} como dois caracteres comuns, nesse caso.




Tom



Reply to: