이 명령은 무엇을 합니까?옵션이 있는 명령 찾기

이 명령은 무엇을 합니까?옵션이 있는 명령 찾기

그런데 질문이 있습니다. 이 명령은 무엇을 합니까? 나는 find 명령을 알고 있지만 인용문의 표현과 -exec 및 ...와 같은 옵션 no에 대해 알고 있습니다.

find /var -name "[0-9]*test[A-Z]" -exec  {} /root/{}';'

답변1

find /varfind디렉토리에서 검색을 시작하도록 지시합니다 /var.

-name "[0-9]*test[A-Z]"find패턴과 일치하는 파일/폴더만 반환하도록 지시하는 검색 패턴입니다 "[0-9]*test[A-Z]". 검색 문자열을 인용하지 않으면 쉘은 해당 검색 패턴을 확장하고 결과를 실행하려고 시도합니다. 검색 패턴을 인용하여 에 인수로 전달합니다 find /var -name.

원래 질문의 일부 -exec...에 구문 오류가 있으며 그래야 합니다 ( 디저트와 데이지가 주석 처리한 -exec {} /root/{} ';'앞의 공백을 참고하세요 ). 다음 인수를 실행하도록 지시합니다 . 여기서 는 의 검색 결과로 대체됩니다 . 일반적으로 쉘 확장을 방지하기 위해 이를 인용해야 합니다.';'
find{}find

마지막으로 명령을 실행할 때 섹션에서 검색 결과를 처리하는 ';'방법을 정의합니다 . 각 단일 찾기 결과에 대해 명령을 실행하도록 find에 지시합니다 . 대신 사용하면 모든 찾기 결과가 확장된 상태로 명령이 실행됩니다. 쉘이 확장하고 .-exec';'-exec'+'-execfind...-exec

";"와 의 차이점을 보여주는 작은 예 "+"는 다음과 같습니다.

[user@localhost test]$ find . -name "[0-9]*test[A-Z]" -exec echo "{}" ";"
./12ltestA
./1ltestA
[user@localhost test]$ find . -name "[0-9]*test[A-Z]" -exec echo "{}" "+"
./12ltestA ./1ltestA

관련 정보