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

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

새 폴더를 만드는 동안 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로 교체해야 합니다.ls -li

답변2

rm에서 대화형 옵션을 사용할 수 있습니다. 각 파일을 나열하고 삭제할 것인지 묻습니다. 따라서 일반 테스트인 비트만 와일드카드로 지정할 수 있습니다.

rm -i *Flew*Cuckoo*Nest*

rmdir에서는 작동하지 않습니다. 디렉터리가 비어 있으면 다음을 수행할 수 있습니다.

rm -ir *Flew*Cuckoo*Nest*

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

mv *Flew*Cuckoo*Nest* BetterCuckooName

관련 정보