![이 명령은 무엇을 합니까?옵션이 있는 명령 찾기](https://rvso.com/image/1157173/%EC%9D%B4%20%EB%AA%85%EB%A0%B9%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9D%84%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F%EC%98%B5%EC%85%98%EC%9D%B4%20%EC%9E%88%EB%8A%94%20%EB%AA%85%EB%A0%B9%20%EC%B0%BE%EA%B8%B0.png)
그런데 질문이 있습니다. 이 명령은 무엇을 합니까? 나는 find 명령을 알고 있지만 인용문의 표현과 -exec 및 ...와 같은 옵션 no에 대해 알고 있습니다.
find /var -name "[0-9]*test[A-Z]" -exec {} /root/{}';'
답변1
find /var
find
디렉토리에서 검색을 시작하도록 지시합니다 /var
.
-name "[0-9]*test[A-Z]"
find
패턴과 일치하는 파일/폴더만 반환하도록 지시하는 검색 패턴입니다 "[0-9]*test[A-Z]"
. 검색 문자열을 인용하지 않으면 쉘은 해당 검색 패턴을 확장하고 결과를 실행하려고 시도합니다. 검색 패턴을 인용하여 에 인수로 전달합니다 find /var -name
.
원래 질문의 일부 -exec...
에 구문 오류가 있으며 그래야 합니다 ( 디저트와 데이지가 주석 처리한 -exec {} /root/{} ';'
앞의 공백을 참고하세요 ). 다음 인수를 실행하도록 지시합니다 . 여기서 는 의 검색 결과로 대체됩니다 . 일반적으로 쉘 확장을 방지하기 위해 이를 인용해야 합니다.';'
find
{}
find
마지막으로 명령을 실행할 때 섹션에서 검색 결과를 처리하는 ';'
방법을 정의합니다 . 각 단일 찾기 결과에 대해 명령을 실행하도록 find에 지시합니다 . 대신 사용하면 모든 찾기 결과가 확장된 상태로 명령이 실행됩니다. 쉘이 확장하고 .-exec
';'
-exec
'+'
-exec
find...-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