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