"rm #*"을 사용하여 #으로 시작하는 파일을 삭제하는 방법은 무엇입니까?

"rm #*"을 사용하여 #으로 시작하는 파일을 삭제하는 방법은 무엇입니까?

Bash에서 을(를) 제거하고 싶습니다 #. rm #*그러나 다음 메시지를 받았습니다: rm: missing operand.

그렇다면 이 목표를 달성하는 방법은 무엇입니까?

답변1

옥토소프( #) 또는 파운드 기호는 주석 문자입니다.POSIX 구문은 여기에 있습니다말한 바와 같이:

현재 문자가 "#"인 경우 해당 문자와 ​​다음 <newline> 이전(포함하지 않음)의 모든 후속 문자는 주석으로 삭제됩니다. 줄을 끝내는 <newline>은 주석의 일부로 간주되지 않습니다.

따라서 주석으로 해석되지 않도록 파운드 기호를 인용하거나 이스케이프 처리해야 합니다.

rm '#'*

또는

rm "#"*

또는

rm \#*

답변2

주석을 시작 하지만 #단어 시작 부분에서만 주석을 수행합니다. 따라서 경로(예: ./현재 디렉터리) 앞에 접두사를 추가하면 비활성화될 수도 있습니다.

rm ./#*

덧붙여, 접두사는 대시 ( )로 시작하는 파일 이름이 명령 옵션으로 해석되는 것을 방지하는 두 가지 방법 중 하나 ./이기도 합니다 .
-like-this

답변3

쉘이 다음과 같은 경우 주석으로 사용되는 문자를 bash비활성화할 수 있습니다.#대화형 셸에서그리고

shopt -u interactive_comments

이 쉘 옵션을 지운 후,

rm #*

이스케이프 처리 없이 원래 예상한 대로 작동해야 합니다 #.

답변4

사용 중인 쉘 설정에 따라 다름

rm \#file

또는

rm '#file'

또는 특수 문자인 경우 #으로 해석되어 표시됩니다.

rm ?file

일할 수있다

관련 정보