반응형
find 명령의 -exec 옵션에 백 슬래시와 세미콜론이 필요한 이유는 무엇입니까?
Linux 터미널에서 다른 명령을 결합하기 시작했습니다. 다음과 같은 명령에 백 슬래시와 세미콜론이 필요한 이유가 궁금합니다.
find ./ -name 'blabla' -exec cp {} ./test \;
간단한 cp 명령이 다음과 같을 때 :
cp randomfile ./test
\없이;
명령의 끝을 명확하게 나타내야합니까, 아니면 단순히 문서에 필요합니까? 기본 원칙은 무엇입니까?
감사합니다!
세미콜론 앞의 백 슬래시 ;
는 쉘 명령을 구분하기위한 목록 연산자 (또는 &&
, ||
) 중 하나 이기 때문에 사용됩니다 . 예 :
command1; command2
find
유틸리티를 사용 ;
하거나 +
호출 쉘 명령을 종료합니다 -exec
.
따라서 해석에서 특수 쉘 문자를 피하려면 다음 문자 읽기 및 행 연속에 대한 특수 의미를 제거하기 위해 백 슬래시로 이스케이프해야합니다.
따라서 다음 예제 구문이 find
명령에 허용됩니다 .
find . -exec echo {} \;
find . -exec echo {} ';'
find . -exec echo {} ";"
find . -exec echo {} \+
find . -exec echo {} +
또한보십시오:
"man find"에서 :
찾을 다음 모든 인수는 ';'로 구성된 인수가 될 때까지 명령에 대한 인수로 간주됩니다. 만난다.
find는 exec의 인수가 종료되는시기를 알아야합니다. 쉘 명령을 종료하는 것은 당연합니다. 쉘도이 문자를 사용하기 때문입니다. 같은 이유로 이러한 문자는 쉘을 통해 삽입 될 때 이스케이프되어야합니다.
반응형
'Development Tip' 카테고리의 다른 글
자바 스크립트에서 사용자 정의 정렬 기능을 정의하는 방법은 무엇입니까? (0) | 2020.12.30 |
---|---|
부동 소수점 (또는 배정 밀도) 숫자로 0으로 나누면 Java에서 java.lang.ArithmeticException : / 0으로 처리되지 않는 이유 (0) | 2020.12.30 |
동일한 기능에서 반환 및 산출 (0) | 2020.12.30 |
하나의 dll을 다른 내부에 포함 된 리소스로 포함하고 내 코드에서 호출 (0) | 2020.12.30 |
날짜 범위별로 Subversion 저장소에서 변경 사항 목록을 어떻게 얻습니까? (0) | 2020.12.30 |