'-' 기호로 시작하는 이름을 가진 파일을 만드는 방법

'-' 기호로 시작하는 이름을 가진 파일을 만드는 방법

기호 touch로 시작하는 이름을 가진 파일을 생성하기 위해 Linux 터미널에서 명령을 사용하고 싶습니다 .--attempt

-특수문자 라는 사실을 어떻게 극복할 수 있나요 ?

예를 들어, 이름이 이라는 파일을 만들고 싶다면 #attempt그냥 쓸 수는 없습니다.touch #attempt

대신에 를 써야 하는데 touch \#attempt-경우에는 사용해도 \여전히 잘 작동하지 않습니다.)

답변1

두 가지 방법:

-첫 번째 문자에서 멀리 이동

touch ./-foo

또는 --스위치 끝 마커를 사용하세요.

touch -- -foo

답변2

touch \#attempt해시 기호는 쉘에 특별하기 때문에 작동합니다. 마찬가지로 괄호나 앰퍼샌드 등이 있는 파일 이름에는 touch \(foo\), 같은 것이 필요합니다.touch 'this & that'

하지만 대시를 탈출하는 것은 특별하지 않기 때문에 도움이 되지 않습니다.껍질에, 그러나 셸에서 실행되는 유틸리티입니다. 쉘 명령줄을 실행하는 것은 touch \-foorunning 과 동일하며 touch -foo어쨌든 단일 touch인수를 얻습니다 .-foo

따라서 탈출하는 대신 다른 것이 필요합니다.

명령 인수를 (가능한) 옵션으로 해석하는 것을 중지하도록 프로그램에 지시하는 표준 방법은 --옵션 뒤에 인수를 삽입하는 것입니다. 예를 들어 이것은 다음 과 같은 파일에서 rm옵션을 사용하여 실행됩니다 .-f-r

rm -f -- -r

(그리고 rm -- --이라는 파일을 제거합니다 --.)

또는 일반적으로 대시를 앞에 추가하여 파일 이름의 첫 번째 문자가 아닌지 확인하여 문제를 해결할 수 있습니다 ./. 다시 말하면 다음과 같은 파일이 제거됩니다 -rf.

rm ./-rf

관련 정보