"-d"라는 파일 제거

"-d"라는 파일 제거

가능한 중복:
Bash에서 "-p"라는 파일을 어떻게 삭제합니까?
Linux에서 이 이름을 가진 파일을 삭제하는 방법: -]????????q
`-rf`라는 파일을 제거하려면 어떤 명령을 사용해야 합니까?

실수로 -d라는 파일을 만들었습니다.

이를 제거하기 위해 작은따옴표와 큰따옴표는 물론 와일드카드도 사용해 보았으나 "rm"을 입력할 때마다 다음 오류가 발생했습니다.

경고: --directory (-d) 옵션은 문서화되지 않았으며 작동하지 않습니다. 비어 있지 않은 디렉토리를 삭제하려면 -rf를 사용하십시오. rm: 피연산자가 누락되었습니다. 자세한 내용을 보려면 `rm --help'를 시도하십시오.

파일을 어떻게 제거합니까?

답변1

rm -- -d

--"옵션의 끝"을 의미합니다. 이 명령줄 다음에 나오는 모든 내용은 옵션이 아닌 인수(예: 사용자의 경우 파일 이름)로 해석됩니다.

답변2

rm ./-d

귀하의 질문에 대한 답변입니다.

답변3

이 특정한 경우에는 '--'를 사용하는 것이 가장 쉽습니다. 그러나 인쇄할 수 없는 제어 문자가 있는 파일을 우연히 발견한 경우 보다 일반적인 해결책은 inode로 파일을 참조하는 것입니다.

% ls -ali aFileWithFunnyCharacters
      9215 -rw-r-----   1 chris  chris         0 Sep  8 16:55 aFileWithFunnyCharacters
% find . -xdev -inum 9215 -exec rm {} \;
% ls -ali aFileWithFunnyCharacters
aFileWithFunnyCharacters: No such file or directory

답변4

Gnu-find에는 -delete 옵션이 있습니다:

find -name "-d" -delete

그렇지 않으면 시도해 볼 수 있습니다

find -name "-d" -exec rm {} ";" 

그러나 위의 -- -해결책은 더 짧고 --로 플래그 해석을 중지하는 방법은 getopt-library를 사용하는 많은 프로그램에서 사용되므로 일반적으로 이를 배우는 것이 유용합니다.

그러나 찾기/삭제 역시 배우기에 매우 유용한 것입니다. 두 예제 모두 "-d"라는 이름의 파일을 재귀적으로 삭제한다는 점에 유의하세요. 이는 자주 발생하지 않을 수 있지만 "-d"라는 이름의 파일이 하나 있는 경우 해당 파일이 더 많이 있을 수 있습니다. :)

관련 정보