O comando find fornece esta saída:
[root @ localhost /] # encontra var / log / -iname anaconda. * var / log / anaconda.log var / log / anaconda.xlog var / log / anaconda.yum.log var / log / anaconda.syslog var / log / anaconda.program.log var / log / anaconda.storage.log
Depois de combinar com o tar, está mostrando esta saída:
[root @ localhost /] # encontra var / log / -nome anaconda. * -exec tar -cvf file.tar {} \; var / log / anaconda.log var / log / anaconda.xlog var / log / anaconda.yum.log var / log / anaconda.syslog var / log / anaconda.program.log var / log / anaconda.storage.log
Mas ao listar o arquivo tar, ele mostra apenas um único arquivo
[root @ localhost /] # tar -tvf file.tar -rw ------- root / root 208454 27-02-2012 12:01 var / log / anaconda.storage.log
O que estou fazendo de errado aqui?
Com xargs, estou recebendo esta saída:
[root @ localhost /] # encontra var / log / -iname anaconda. * | xargs tar -cvf file1.tar
Segunda questão
Ao digitar / na frente de var, significa find /var/log
por que está dando a essa mesaage tar: Removendo `/ 'principal dos nomes dos membros
[root @ localhost /] # find / var / log / -nome anaconda. * -exec tar -cvf file.tar {} \; tar: Removendo `/ 'principal dos nomes dos membros /var/log/anaconda.log tar: Removendo `/ 'principal dos nomes dos membros /var/log/anaconda.xlog tar: Removendo `/ 'principal dos nomes dos membros /var/log/anaconda.yum.log tar: Removendo `/ 'principal dos nomes dos membros /var/log/anaconda.syslog tar: Removendo `/ 'principal dos nomes dos membros /var/log/anaconda.program.log tar: Removendo `/ 'principal dos nomes dos membros /var/log/anaconda.storage.log
De uma forma simples, qual é a diferença entre os dois seguintes?
find var/log
e find /var/log
{} +
, em vez de {} \;
ele irá resultados do grupo de achado em um argumento
find
comando, você deve citar o termo da pesquisa. Funciona sem às vezes, mas nem sempre.