!find 명령 실행은 어떻게 작동하나요?

!find 명령 실행은 어떻게 작동하나요?

!find명령을 사용하면 사용자는 find모든 매개변수를 사용하여 이전에 실행한 명령을 실행할 수 있습니다.

내부적으로는 어떻게 작동하며 이 동작은 정확히 어디에 프로그래밍되어 있나요?

답변1

명령 자체와는 아무런 관련이 없으며 find기록 확장이라는 셸의 기능입니다. 쉘이 기록 확장을 지원하는 경우 과거에 입력한 명령을 참조하고 이를 통해 일부 작업을 수행할 수 있습니다.

예를 들어 Bash에서 귀하의 작업은 이벤트 표시기의 명령 기록을 참조합니다. ~에서배쉬 매뉴얼:

이벤트 표시기는 기록 목록의 명령줄 항목에 대한 참조입니다. 참조가 절대적이지 않은 경우 이벤트는 기록 목록의 현재 위치를 기준으로 합니다.

!

뒤에 공백, 탭, 줄 끝 =또는 (( extglob내장 명령을 사용하여 쉘 옵션이 활성화된 경우 shopt)이 없으면 기록 교체를 시작합니다.

!string

문자열로 시작하는 기록 목록에서 현재 위치 이전의 가장 최근 명령을 참조합니다.

실제 내부 내용은 소스 코드를 읽을 수 있습니다.get_history_event배쉬 4.3부터 시작합니다.

관련 정보