"$"로 시작하는 폴더를 삭제하는 방법은 무엇입니까? [복사]

"$"로 시작하는 폴더를 삭제하는 방법은 무엇입니까? [복사]

"$pattern"이라는 디렉토리를 만들었고 이제 이를 삭제하려고 할 때마다 다음과 같이 표시됩니다.

패턴: 정의되지 않은 변수입니다.

나는 시도했다:

$ rm -r $pattern
$ rm -rf $pattern
$ rm "$ option[value='2016']"

답변1

$, 공백 '[대부분의 쉘에서 특수 문자입니다. 특별한 의미를 제거하려면 쉘의 인용 메커니즘을 사용해야 합니다.

이것인용 구문은 셸마다 크게 다릅니다..

내가 아는 모든 쉘에서는 작은따옴표, 백슬래시 및 개행 문자를 제외한 모든 문자를 인용하기 위해 작은따옴표를 사용할 수 있습니다(Bourne과 같은 쉘에서는 \일부 백틱을 제외하고 마지막 두 문자도 인용합니다).

rm -r '$pattern'

가장 일반적인 쉘에서 작동해야 합니다.

rm -r \$pattern

직렬 쉘을 제외한 모든 쉘에서 작동합니다(Bourne과 같은 내부 백틱 제외) rc.

다음에도 적용됩니다.

rm "\$option[value='2016']"

rc-like 쉘 에서는 다음을 사용할 수 있습니다.

rm '$option[value=''2016'']'

답변2

디렉토리가 비어 있는 경우:

rmdir \$pattern

그렇지 않으면:

rm -r \$pattern

(해당 폴더에 포함된 모든 파일이 재귀적으로 삭제됩니다.)

답변3

특수 문자가 포함된 파일을 작업해야 할 때 한 가지 옵션은 bash 자동 완성을 사용하는 것입니다. 명령을 입력하기 시작하고(이 경우 rmdir) Tab몇 번 클릭합니다. 현재 디렉터리의 모든 파일/디렉터리를 반복하여 모든 특수 문자를 자동으로 이스케이프합니다.

이는 매우 긴 파일 이름을 작업하는 경우에도 잘 작동합니다.

답변4

예상치 못한 데이터베이스 명령이 실행되는 것을 방지하려면 웹 애플리케이션에서 SQL 쿼리를 작성할 때 일반적으로 사용되는 "\"로 이 문자를 이스케이프하면 됩니다.

관련 정보