이상한 이름의 디렉터리를 삭제할 수 없습니다.

이상한 이름의 디렉터리를 삭제할 수 없습니다.

새 폴더를 만들 때 '가 BASH의 특수 문자라는 것을 인식하지 못했습니다. 즉, 다음과 같은 파일이 생성되었음을 의미합니다.

One Flew Over the Cuckoos\ Nest\ \(1975\)?quit?quit()?ls??????????

아니면 정확히 말하면

drwxrwxrwx    1 root     root             0 Mar  8 23:21 One Flew Over the Cuckoos\ Nest\ \(1975\)?quit?quit()?ls??????????

이로 인해 터미널이 미치게 되었습니다. 탭 완성 기능을 전혀 찾을 수 없습니다. inode를 통해 열려고 하면 오류가 발생합니다.

LibreELEC:/var/media/MYNAME/Films # rm -r "$(find -inum 187)"
rm: can't remove './One Flew Over the Cuckoos\ Nest\ \(1975\)
quit
quit()
ls': No such file or directory

내가 얼마나 심하게 망쳤습니까?

답변1

해결되었습니다. OP에서 시도한 것처럼 inode로 제거하여 이 작업을 수행했지만 이제 다음 줄을 사용하여 파일 이름을 완전히 우회했습니다.

find . -inum 187 -delete

이 글을 읽는 사람이라면 누구나 187을 다음을 통해 찾은 inode로 교체해야 합니다.이엘에스

답변2

rm에서 대화형 옵션을 사용할 수 있습니다. 각 파일을 나열하고 삭제할 것인지 묻습니다. 따라서 와일드카드를 사용하여 간단하게 테스트할 수 있습니다.

rm -i *Flew*Cuckoo*Nest*

이는 rmdir에는 영향을 미치지 않습니다. 디렉터리가 비어 있으면 다음을 수행할 수 있습니다.

rm -ir *Flew*Cuckoo*Nest*

또는 고유성을 보장하기 위해 디렉터리와 충분히 일치할 수 있는 경우 디렉터리 이름을 입력할 수 있는 이름으로 바꿀 수 있습니다.

mv *Flew*Cuckoo*Nest* BetterCuckooName

관련 정보