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

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

Linux 터미널에서 이 명령을 사용하여 이름이 기호 touch로 시작하는 파일을 만들고 싶습니다 .--attempt

-내가 이 특정한 역할을 맡고 있다는 사실을 어떻게 극복할 수 있습니까?

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

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

답변1

두 가지 방법:

-첫 번째 문자에서 멀리 떨어져 있을 것입니다 .

touch ./-foo

또는 --스위치 닫는 태그를 사용하세요.

touch -- -foo

답변2

touch \#attempt이것은 파운드 기호가 쉘에 특별하기 때문에 작동합니다. 다시 touch \(foo\)말하지만 , 괄호나 앰퍼샌드 등이 포함된 touch 'this & that'파일 이름을 원합니다 .

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

그러니 도망가는 대신 다른 일을 해야 합니다.

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

rm -f -- -r

(그리고 rm -- --이름이 .인 파일은 삭제됩니다 --.)

또는 대시가 파일 이름의 첫 번째 문자(일반적으로 앞에 추가됨)가 아닌지 확인하여 이 작업을 수행할 수 있습니다. ./이번에도 다음과 같은 이름의 파일이 삭제됩니다 -rf.

rm ./-rf

관련 정보