Il comando find fornisce questo output:
[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
Dopo aver combinato con tar sta mostrando questo output:
[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
Ma mentre elenca il file tar mostra solo un singolo file
[root @ localhost /] # tar -tvf file.tar -rw ------- root / root 208454 2012-02-27 12:01 var / log / anaconda.storage.log
Cosa sto facendo di sbagliato qui?
Con xargs sto ottenendo questo output:
[root @ localhost /] # find var / log / -iname anaconda. * | xargs tar -cvf file1.tar
Seconda domanda
Mentre si digita / davanti a var, significa find /var/logperché sta dando questo mesaage tar: Rimuovere i primi `/ 'dai nomi dei membri
[root @ localhost /] # find / var / log / -iname anaconda. * -exec tar -cvf file.tar {} \;
tar: rimozione del carattere `/ 'iniziale dai nomi dei membri
/var/log/anaconda.log
tar: rimozione del carattere `/ 'iniziale dai nomi dei membri
/var/log/anaconda.xlog
tar: rimozione del carattere `/ 'iniziale dai nomi dei membri
/var/log/anaconda.yum.log
tar: rimozione del carattere `/ 'iniziale dai nomi dei membri
/var/log/anaconda.syslog
tar: rimozione del carattere `/ 'iniziale dai nomi dei membri
/var/log/anaconda.program.log
tar: rimozione del carattere `/ 'iniziale dai nomi dei membri
/var/log/anaconda.storage.log
In una forma semplice, qual è la differenza tra i seguenti due?
find var/log e find /var/log
{} +invece {} \;, raggruppa i risultati di find in un argomento
findcomando, dovresti citare il termine di ricerca. Funziona senza a volte ma non sempre.