bash rmdir에서 괄호를 피하는 방법은 무엇입니까?

bash rmdir에서 괄호를 피하는 방법은 무엇입니까?

10.2 (14C92)rmdir -rf(내용을 포함하기 위해)를 사용하여 삭제하려는 디렉터리 와 비슷한 이름을 가진 디렉터리가 있습니다 . 공백을 전달하는 방법을 알고 있지만 \결과는 다음과 같습니다.

-bash: syntax error near unexpected token ('

그래서 어떻게든 명령에서 괄호를 벗어나야 할 것 같습니다. 이 작업을 올바르게 수행하려면 어떻게 해야 합니까?

답변1

그걸 이용해 \탈출 할 수 있어어느단일 문자를 입력 (하고 )이미 공백을 사용했던 것처럼 해당 문자를 포함하세요. 작동하는 동안 이스케이프할 문자/공백이 많으면 번거로울 수 있습니다.

더 빠른 대안은 다음을 사용하는 것입니다.아포스트로피( ') 도망가다전체 문자열, 즉 다음과 같습니다.

rm -rf '10.2 (14C92)'

'탈출을 기억해주세요모든 것이므로 필요한 경우 주의해서 사용하세요(예: 따옴표 안의 변수 확장). 즉,큰따옴표공백과 괄호를 이스케이프 처리하는 데에도 작동합니다.

rm -rf "10.2 (14C92)"

또한 귀하의 질문에 따르면 이것은 에서만 작동합니다 rmdir.rmdir빈 디렉토리-r그리고/또는 플래그 가 없습니다 -f:

NAME rmdir - 빈 디렉토리 삭제

개요 rmdir [옵션]...디렉토리...

디렉토리 삭제에 대해 설명합니다.비어 있으면.

을 사용하고 싶을 것입니다 rm -rf. 실제로 비어
있으면 10.2 (14C92)간단합니다.

rmdir '10.2 (14C92)'

할 것입니다.

이스케이프는 bash자체적으로 수행되므로 모든 명령에 대해 작동합니다. 즉, bash결정합니다.무엇명령에 전달된 명령은 자체 구문 분석 규칙에 따라 매개변수에 대해 작동합니다.뒤쪽에 bash분석되었습니다.

답변2

당신은 이미 올바른 길을 가고 있습니다. 이스케이프 문자를 \대괄호로 사용할 수도 있습니다 .

rm -r 10.2\ \(14C92\)

참조를 사용할 수도 있습니다.

rm -r '10.2 (14C92)'

답변3

rm -rf 10.2\ \(14C92\)/- 이 폴더 10.2\ \(14C92\)/와 모든 콘텐츠를 반복적으로 삭제합니다.

관련 정보