Polecenie find daje następujące dane wyjściowe:
[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
Po połączeniu ze smołą wyświetla następujące dane wyjściowe:
[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
Ale podczas wyświetlania pliku tar wyświetla tylko jeden plik
[root @ localhost /] # tar -tvf plik.tar -rw ------- root / root 208454 27.02.2012 12:01 var / log / anaconda.storage.log
Co tutaj robię źle?
Z xargs otrzymuję ten wynik:
[root @ localhost /] # find var / log / -iname anaconda. * | xargs tar -cvf plik1.tar
Drugie Pytanie
Podczas pisania / przed var, oznacza to, find /var/logdlaczego daje on ten komunikat tar: Usuwanie wiodącego `/ 'z nazw członków
[root @ localhost /] # find / var / log / -iname anaconda. * -exec tar -cvf file.tar {} \;
tar: Usuwanie wiodącego `/ 'z nazw członków
/var/log/anaconda.log
tar: Usuwanie wiodącego `/ 'z nazw członków
/var/log/anaconda.xlog
tar: Usuwanie wiodącego `/ 'z nazw członków
/var/log/anaconda.yum.log
tar: Usuwanie wiodącego `/ 'z nazw członków
/var/log/anaconda.syslog
tar: Usuwanie wiodącego `/ 'z nazw członków
/var/log/anaconda.program.log
tar: Usuwanie wiodącego `/ 'z nazw członków
/var/log/anaconda.storage.log
W prostej formie jaka jest różnica między następującymi dwoma?
find var/log i find /var/log
{} +zamiast {} \;tego zgrupuje wyniki find w jeden argument
findpoleceniem, powinieneś zacytować szukany termin. Działa czasami, ale nie zawsze.