find 명령은 다음과 같은 출력을 제공합니다.
[root @ localhost /] # 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
tar와 결합하면 다음 출력이 표시됩니다.
[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
그러나 tar 파일을 나열하는 동안 단일 파일 만 표시됩니다.
[root @ localhost /] # tar -tvf 파일 .tar -rw ------- 루트 / 루트 208454 2012-02-27 12:01 var / log / anaconda.storage.log
내가 여기서 뭘 잘못하고 있니?
xargs를 사용하면이 출력을 얻습니다.
[root @ localhost /] # find var / log / -iname 아나콘다. * | xargs tar -cvf 파일
두 번째 질문
var 앞에 / 를 입력하는 동안 find /var/log
왜 mesaage tar를 제공 하는지를 의미합니다 . 멤버 이름에서 선행`/ '제거
[root @ localhost /] # find / var / log / -iname anaconda. * -exec tar -cvf file.tar {} \; tar : 멤버 이름에서 선행`/ '제거 /var/log/anaconda.log tar : 멤버 이름에서 선행`/ '제거 /var/log/anaconda.xlog tar : 멤버 이름에서 선행`/ '제거 /var/log/anaconda.yum.log tar : 멤버 이름에서 선행`/ '제거 /var/log/anaconda.syslog tar : 멤버 이름에서 선행`/ '제거 /var/log/anaconda.program.log tar : 멤버 이름에서 선행`/ '제거 /var/log/anaconda.storage.log
간단한 형태로 다음 두 가지의 차이점은 무엇입니까?
find var/log
과 find /var/log
{} +
대신 사용하면 {} \;
find 결과를 하나의 인수로 그룹화합니다.
find
명령을 계속 진행 하면서 검색어를 인용해야합니다. 때로는 그렇지는 않지만 항상 작동하지는 않습니다.