El comando find da esta salida:
[root @ localhost /] # find 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
Después de combinar con tar, muestra esta salida:
[root @ localhost /] # find var / log / -iname 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
Pero al enumerar el archivo tar, solo muestra un único archivo
[root @ localhost /] # tar -tvf file.tar -rw ------- root / root 208454 2012-02-27 12:01 var / log / anaconda.storage.log
¿Qué estoy haciendo mal aquí?
Con xargs obtengo esta salida:
[root @ localhost /] # find var / log / -iname anaconda. * | xargs tar -cvf file1.tar
Segunda pregunta
Mientras escribe / delante de var, significa find /var/log
por qué le está dando este tar de mesaage : eliminando los principales '/' de los nombres de miembros
[root @ localhost /] # find / var / log / -iname anaconda. * -exec tar -cvf file.tar {} \; tar: eliminando los principales '/' de los nombres de miembros /var/log/anaconda.log tar: eliminando los principales '/' de los nombres de miembros /var/log/anaconda.xlog tar: eliminando los principales '/' de los nombres de miembros /var/log/anaconda.yum.log tar: eliminando los principales '/' de los nombres de miembros /var/log/anaconda.syslog tar: eliminando los principales '/' de los nombres de miembros /var/log/anaconda.program.log tar: eliminando los principales '/' de los nombres de miembros /var/log/anaconda.storage.log
En una forma simple, ¿cuál es la diferencia entre los dos siguientes?
find var/log
y find /var/log
{} +
lugar de {} \;
eso, agrupará los resultados de find en un argumento
find
comando, debe citar el término de búsqueda. Funciona sin a veces pero no siempre.