*(1)*
왜 디렉토리의 모든 것을 삭제 합니까 ? 그렇다면 (1)
중간에 이름이 있는 모든 파일을 선택하는 방법은 무엇입니까?
사용된 명령은 rm *(1)*
or 입니다 rm -rf *(1)*
(명확하게 기억할 수 없음). 이것이 기본 우분투 쉘입니다.
답변1
Bash에 설정된 것과 같은 ksh 스타일 확장 글로브를 활성화하면 extglob
패턴이 *(1)*
실제로 모든 파일 이름과 일치합니다. 이 *(...)
구문은 괄호로 묶인 부분의 0개 이상의 복사본과 선행 복사본(있는 경우)과 일치합니다. 그런 다음 *
나머지 부분을 일치시킵니다.
POSIX와 유사한 쉘을 사용하는 경우아니요(
확장된 glob의 경우 연산자가 해당 구문에 맞지 않기 때문에 오류가 발생합니다 .
*1*
기본적으로 zsh에서는 그룹화에만 사용되는 대괄호와 동일하다고 생각합니다 . 그러나 kshglob
shell 옵션을 설정하면 ksh 규칙을 사용합니다.
extglob
최신 버전의 Ubuntu는 기본적으로 대화형 셸에서 Bash로 설정되어 있다고 생각합니다 .
(1)
파일을 중간에 있는 텍스트 섹션과 일치시키려면 섹션이나 최소한 괄호( *\(1\)*
, 또는 ) 를 인용하거나 이스케이프하십시오 *"(1)"*
.