답변:
일반적인 방법으로는 삭제할 수없는 파일에 관한 매우 궁극적 인 해결책은 다음과 같습니다.
ls -il
첫 번째 열에는 파일의 inode 번호가 표시됩니다.
find . -inum [inode-number] -exec rm -i {} \;
확인 후 지정된 inode-number를 가진 파일을 삭제합니다.
-delete
대신에 사용하도록 답변을 변경 -exec
한 다음 사용하고 있다는 것을 깨달았 rm -i
으므로 롤백했습니다. 죄송합니다.
~/~
물결표 확장 ~
은 단어 맨 앞에 물결표 ( ) 만 적용하기 때문에 해당 파일을 (따옴표없이) 참조 할 수 있어야합니다 .
rm ./~
하여 같은 이유로
./~
문자 그대로 " ~
현재 디렉토리에 이름이 지정된 파일 또는 폴더"를 의미하기 때문에 다른 답변과 비교하여 "최고의"가장 간단한 솔루션으로 간주합니다 . 이스케이프 문자 또는 inode 참조와 같은 핵은 없습니다.
./~
합니다. 5 년 후, 기억력이 약간 희미하지만, 이것이 내가 생각하는 ~/~
것보다 더 일반적인 것입니다 ./~
. 질문은 구체적으로 " ~
[OP 's] 홈 디렉토리에 이름이 지정된 파일"을 나타냅니다 . "현재 디렉토리에서"가 아닙니다.
인용 rm '~'
하거나 ( ) 탈출하십시오 ( rm \~
).
이 중 하나 (또한 예에 대한 사람들의 항상 $
), 또는 추가 --
인수로 해석되는 파일 이름을 방지하기 위해 : rm -- -i
라는 이름의 파일을 제거 -i
; rm -- *
현재 디렉토리의 모든 파일을 삭제하려는 경우 에도 유용 rm -f *
합니다. 파일 이름이 이와 같은 이유로 우연히 없습니다 .
--
다음 인수가 매개 변수로 해석되는 것을 중지합니다. 쉘이 확장을 수행하는 것을 막지 않습니다 (예 *
:). (다른 상황에 대한 대안으로 제안한 것을 알고 있지만 경고는 좋을 것입니다.)