명령에서 "*(1)*"은 무엇을 의미합니까?

명령에서 "*(1)*"은 무엇을 의미합니까?

*(1)*왜 디렉토리의 모든 것을 삭제 합니까 ? 그렇다면 (1)중간에 이름이 있는 모든 파일을 선택하는 방법은 무엇입니까?

사용된 명령은 rm *(1)*or 입니다 rm -rf *(1)*(명확하게 기억할 수 없음). 이것이 기본 우분투 쉘입니다.

답변1

Bash에 설정된 것과 같은 ksh 스타일 확장 글로브를 활성화하면 extglob패턴이 *(1)*실제로 모든 파일 이름과 일치합니다. 이 *(...)구문은 괄호로 묶인 부분의 0개 이상의 복사본과 선행 복사본(있는 경우)과 일치합니다. 그런 다음 *나머지 부분을 일치시킵니다.

POSIX와 유사한 쉘을 사용하는 경우아니요(확장된 glob의 경우 연산자가 해당 구문에 맞지 않기 때문에 오류가 발생합니다 .

*1*기본적으로 zsh에서는 그룹화에만 사용되는 대괄호와 동일하다고 생각합니다 . 그러나 kshglobshell 옵션을 설정하면 ksh 규칙을 사용합니다.

extglob최신 버전의 Ubuntu는 기본적으로 대화형 셸에서 Bash로 설정되어 있다고 생각합니다 .

(1)파일을 중간에 있는 텍스트 섹션과 일치시키려면 섹션이나 최소한 괄호( *\(1\)*, 또는 ) 를 인용하거나 이스케이프하십시오 *"(1)"*.

관련 정보